Lighting load classification and dimmer configuration based thereon

ABSTRACT

A machine learning model for classifying different lighting loads based on properties of electrical current through the loads is built. The model is applied to electrical data gathered based on powering a target lighting load in order to classify the load. Based on load classification, operating parameter(s) to control operation of a dimmer to control power to the load are selected and the dimmer is configured with the selected parameter(s) to achieve desired dimmer operation in dimming the load.

BACKGROUND

Appropriately configuring dimmer operating parameters to avoid flickerand other issues when dimming light-emitting diode (LED) and otherlighting loads can be a resource and time-consuming activity. In oneapproach, an application engineering lab tests each revision of firmwareof a given dimmer with multiple different lighting loads, some or all ofwhich may be different types of LED lamps. As LED lamps become morecommon adopted, the database of LED lighting loads and theircompatibility grows. This necessitates re-testing of previous LEDcompatibility results, consuming significant time and resources. Evenwhen a dimmer manufacturer has an extensive testing plan in place for agiven dimmer, its customers can still experience flickering, forinstance because of a low quality LED lamp or because the given lamptype was not in the test plan for the particular dimmer.

SUMMARY

Shortcomings of the prior art are overcome and additional advantages areprovided herein.

In one embodiment, a dimmer is provided for controlling conduction of asupply of power to a lighting load. The dimmer includes a line inputterminal and a load output terminal, the line input terminal configuredto be electrically coupled to the supply of power, and the load outputterminal configured to be electrically coupled to the lighting load, aswitching circuit electrically coupled in series between the line inputterminal and the load output terminal, the switching circuit configuredto be selectively controlled between an ON state and an OFF state, amemory, and a processing circuit in communication with the memory. Thedimmer is configured to perform a method that includes: obtaining amachine learning model, the machine learning model configured, based ontraining of the machine learning model, for classifying lighting loadsinto a plurality of different lighting load classes based on propertiesof electrical current through the lighting loads, based on conductingthe supply of power to the lighting load, obtaining electrical currentdata representing properties of electrical current through the lightingload over a duration of time, applying the machine learning model, usingthe obtained electrical current data representing properties ofelectrical current through the lighting load, to classify the lightingload, and performing processing based on the applying, wherein theperforming processing comprises configuring the dimmer with one or moredimmer operating parameters that control operation of the dimmer.

In another embodiment, a method is provided for controlling operation ofa dimmer. The method includes conducting a supply of power to a lightingload, based on the conducting, obtaining electrical current datarepresenting properties of electrical current through the lighting loadover a duration of time, and based on a classification of the lightingload, the classification being based on the electrical current data andthe classification being by a machine learning model based on trainingof the machine learning model, configuring the dimmer with one or moredimmer operating parameters that control operation of the dimmer.

In yet another embodiment, a dimmer is provided for controllingconduction of a supply of power to a lighting load. The dimmer includesa line input terminal and a load output terminal, the line inputterminal configured to be electrically coupled to the supply of power,and the load output terminal configured to be electrically coupled tothe lighting load; a switching circuit electrically coupled in seriesbetween the line input terminal and the load output terminal, theswitching circuit configured to be selectively controlled between an ONstate and an OFF state; a memory; and a processing circuit incommunication with the memory. The dimmer is configured to perform amethod that includes: based on conducting the supply of power to thelighting load, obtaining electrical current data representing propertiesof electrical current through the lighting load over a duration of time,and based on a classification of the lighting load, the classificationbeing based on the sent electrical current data and the classificationbeing by a machine learning model based on training of the machinelearning model, configuring the dimmer with one or more dimmer operatingparameters that control operation of the dimmer.

Computer and computer systems program products for performing aspectsdescribed herein are also provided. Additional features and advantagesare realized through the concepts described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects described herein are particularly pointed out and distinctlyclaimed as examples in the claims at the conclusion of thespecification. The foregoing and other objects, features, and advantagesof the invention are apparent from the following detailed descriptiontaken in conjunction with the accompanying drawings in which:

FIG. 1A depicts an example current waveform;

FIG. 1B depicts the example current waveform of FIG. 1A with a phaseshift applied thereto;

FIG. 2 illustrates the iterative application of a phase shift to acurrent waveform in the augmentation of an initial dataset of electricaldata, in accordance with aspects described herein;

FIG. 3 depicts an example database construction and format forelectrical current data, in accordance with aspects described herein;

FIGS. 4A and 4B depict example single-sideband fast Fourier transformsfor two different LED lamp types;

FIGS. 5A and 5B depict example current waveforms through two differentLED lamp types;

FIG. 6 depicts an example structure of a neural network in accordancewith aspects described herein;

FIG. 7 depicts example performance of neural networks trained based on atime domain database, in accordance with aspects described herein;

FIG. 8 depicts example performance of neural networks trained based on afrequency domain database, in accordance with aspects described herein;

FIG. 9 depicts example classification performance using time domaindata, in accordance with aspects described herein;

FIG. 10 depicts example classification performance using frequencydomain data, in accordance with aspects described herein;

FIGS. 11-15 depict example processes for dimmer configuration, inaccordance with aspects described herein;

FIGS. 16-20 depict example processes of a remote entity to facilitatedimmer configuration, in accordance with aspects described herein;

FIG. 21 depicts another example process for dimmer configuration, inaccordance with aspects described herein;

FIG. 22 depicts an example of a dimming system including a two-wiredimmer;

FIG. 23 depicts further details of an example two-wire dimmer; and

FIG. 24 depicts one example of a computer system and associated devicesto incorporate and/or use aspects described herein.

DETAILED DESCRIPTION

Described herein are approaches for classifying lighting loads andconfiguring dimmer operation based thereon. Machine learning is used todevelop an algorithm for classification of a lighting load (alsoreferred to herein as load, bulb, or lamp). The classification is madeusing a machine learning model, sometimes also referred to as a“classification model”, “classifier”, or just “model”. The model can bebuilt using data captured using known lighting loads, for instance knownLED and other types of lamps that exist in the marketplace. The datacollected is, in examples, electrical performance data, for instancemeasurements of current through the load for lamps connected to linepower and/or clean power (absent noise). In some examples, additionaldata, for instance light output data, may help to further characterizethe lighting load for classification purposes and/or for informingappropriate operating parameters for dimmer configuration.

An adaptive algorithm will allow a dimmer to optimize its drivecircuitry for desired dimmer operation once load type has beenidentified. An example optimization may be one that minimizes/eliminatesflicker on the lighting load connected in an end-user installation.Certain loads may be more prone to flicker under normal or defaultdimming operation. Classifying the lighting load enables the selectionof parameters tailored for desired dimmer operation when dimming loadsof that class. If the load type/class is known, the dimmer can beconfigured with the appropriate dimmer operating parameters to controloperation of the dimmer, and the dimmer operating parameters can beselected based on the automatic classification of an installed lightingload, as classified by the model. This can facilitate production andprovision of dimmers compatible with almost any of various differentlighting loads, including various different LED load types. Meanwhile,it provides benefits on the dimmer production side in that it reduces oreliminates the burden of testing off-the-shelf lighting loads forcompatibility with a produced dimmer.

A high-level example approach in accordance with aspects describedherein follows a process that builds an appropriate machine learningmodel, trained and refined to relate current waveform (and optionallyother measures, such as light output) data to flicker decisions fordifferent lamps. The model can be tested using data from other lamps toverify that the model adequately predicts lamp type and thereforewhether flicker or other performance issues may result under dimmingoperation.

Thus, the machine learning model can be configured for classifyinglighting loads. The model may include a plurality of different lightingload classes that are identified based on properties of electricalcurrent through lighting loads. The model is trained, and then tested,using electrical waveform data from lamps of different types. Theelectrical waveform data can be measurements of current through the loadwhen the dimmer conducts a supply of power (dimmed cycles or fullcycles) to the load. Once the model is trained, it is tested withnew/other data to see whether, and how effectively, it classifies lamps.The model can therefore be used to detect different types of lamps, forinstance LED, incandescent, and compact fluorescent (CFL), byimplementing classification using the model in hardware. Hardware is orincludes the dimmer itself and/or a remote server or other system incommunication with the dimmer. Aspects described herein cansuccessfully, and with a high degree of accuracy, classify lightingloads into different classes, including, in some examples, classes basedon the internal circuitry of different loads of a same load type (e.g.LED), based on electrical performance properties of loads.

Various options are possible for the particular device(s) that build themodel, train the model, and/or apply the mode to classify a givenlighting load. In a particular example, a dimmer installed in-situ andcoupled to a target lighting load classifies the load using the model,selects the appropriate dimmer operating parameters to control operationof the dimmer given the result of the classification, and configures thedimmer with those parameters. In that particular example, the dimmer canreceive a trained model from another computer system, such as a remoteserver or other remote entity, a user device, for instance a mobiledevice, or any other computer system. The remote entity may be a systemthat has built and trained the model, or may be a different system, forinstance one that obtains a trained model. In another example, thebuilding, training, and applying the model are all performed by one ormore remote entities remote from the dimmer. In that scenario, anindication of the class and/or desired operating parameters are sent tothe dimmer for implementation of the appropriate parameters thereon.Other options are possible and are described herein.

The dimmer may have a network connection that enables the dimmer tocommunicate across one or more network(s), for instance local areanetwork(s), or wide area network(s), such as the Internet. In someembodiments, the dimmer sends captured electrical data to a remotedevice to classify the load that the dimmer powered to obtain thecurrent data. Additionally or alternatively, the send electrical datemay be used to expand a training dataset for the more. Such data can besourced from many dimmers installed in the field in order to expand thetraining dataset further. The model could be retrained periodically oraperiodically to refine the model, augment or change the classes, andthe like, all with the aim of improving the model's accuracy. Updatedmodels can be maintained on a remote entity for later classificationand/or pushed to dimmers via an update, such as part of a firmwareupdate.

In examples in which a dimmer stores and applies a model to sampledelectrical data, the dimmer could reach out to a remote entity to use anupdated model if it exists. This could be prompted based on anunsuccessful attempt to classify a given lighting load. The model mayinclude an ‘unknown’ or ‘default’ category, for instance, selected whenthe model is unable to confidently classify a lighting load type intoone of the well-defined classes. In these cases, the dimmer couldprovide the data to the remote entity for classification of the loadusing the updated model, or could reach out to the remote entity toretrieve the updated model so that the dimmer itself applies the modelto classify the load.

Whether a model is stored on and applied by a dimmer as opposed to aremote entity to classify a lighting load may be based on any of variousconsiderations. The dimmer is to have sufficient compute resources (e.g.processor/processing circuit, memory, etc.) to perform theclassification within an acceptable amount of time. Dimmers withsufficient resources are candidates to hold and apply the model. Dimmerswithout such resources may be configured to collect the electrical data,send it to a remote entity for classification of the lighting load, andreceive a response from the remote entity that indicates the model orappropriate parameters to use. It may be desired not to distribute themodel to devices in the field, and instead retain and apply the model onthe backend.

Various terms used herein are defined/explained as follows:

Activation Function: The function that defines output of a node giveninput(s) thereto; also known as “transfer function”.

Compact Fluorescent Light (CFL): Type of light/lighting load; designedas a replacement to common incandescent bulbs.

Driving Circuit: An electrical circuit used to control another circuitor electrical component.

Electronic Low Voltage (ELV): A low voltage power supply using solidstate converters.

Fast Fourier transform (FFT): An algorithm that samples a signal over aperiod of time (or space) and divides it into its frequency components.

Flicker: A measure of light variation that is often applied to periodicoscillations, modulation as variation in luminance as a proportion ofthe average luminance.

Hidden Layer: A layer of a neural network, the layer having neurons andsitting between input layer(s) and output layer(s).

Incandescent Lamp: Light with a filament that glows when heated toproduce light; this is a purely resistive load.

LabVIEW: Software offered by National Instruments Corporation forvisualizing hardware configuration, measurement data, and debugging.

Machine Learning: A field of computer science that uses statisticaltechniques to give computer systems the ability to learn with datawithout being explicitly programmed.

Magnetic Low Voltage (MLV): A low voltage power supply using a magneticballast.

MATLAB: A desktop environment offered by MathWorks, Inc. (Natick, Mass.,USA) and tuned for iterative analysis and design processes with aprogramming language that expresses matrix and array mathematicsdirectly.

myDAQ: Data acquisition device offered by National InstrumentsCorporation (Austin, Tex., USA) featuring eight commonly usedplug-and-play computer-based lab instruments based on LabVIEW, includinga digital multimeter (DMIVI), oscilloscope, and function generator.

Neural Network: A network of neurons modeled on the human brain andnervous system.

Neuron: Nodes of the neural network.

Light-Emitting Diode (LED): A two-lead semi-conductor light source thatemits light when activated.

Power Inverter: An electronic device that converts direct current (DC)to alternating current (AC).

TensorFlow: An open source software library for high performancenumerical computation, allowing easy deployment of computation across avariety of platforms (CPUs, GPUs, TPUs), and from desktops to clustersof servers to mobile and edge devices.

Topology: The form taken by the network of interconnections of thecircuit device.

TRIAC Dimmer: Dimmer designed for resistive loads using pulse-widthmodulation.

For machine learning model development, training, and testing purposes,a database of electrical data is built in accordance with aspectsdescribed herein. The electrical data includes current waveforms foreach bulb of a collection of bulbs. In some examples, the currentwaveforms are collected for the database without the effects of adimmer, i.e. without powering the bulb via a dimmer.

In an example to facilitate the data acquisition process, a graphicaluser interface (GUI) is designed in an environment such as LabVIEW toinclude, as examples, (i) a sampling rate/period input for a user tospecify the sampling rate, (ii) a trial number input for a user tospecify a number of trails, (iii) a real-time voltage plot displayingvoltage in real-time, (iv) a real-time current plot displaying currentthrough the load in real-time, (v) ‘start test’ and ‘stop test’ buttonsto start and stop the testing, respectively, (vi) a test finishedindicator to indicate when the data acquisition is finished, and (vii) a‘save’ button to export the sampled data to a file, such as a .txt orother type of file. The interface is used to sample current values of acurrent waveform describing current levels through the load.

The sampling occurs based on conducting a supply of power to thedifferent loads for which electrical current data is being acquired. Thedevice conducting the power could be any of various types of devices,for instance dimmer(s) or otherwise. The electrical current data beingobtained represents properties of electrical current through thelighting loads over the duration of the test.

While the measured voltages across the loads are roughly equal andconsistent with the supplied AC power, e.g. of 110V, the current datacan be useful for differentiating between the loads and load types.

In an example database built in accordance with aspects describedherein, the values for current waveforms of 19 bulbs were included. Ofthe 19 bulbs, 16 were LED bulbs, 2 were CFLs, and 1 was an incandescentbulb. They were all sampled at 200 samples per period for 2 periods. Aperiod was 1 second (corresponding to 60 Hz AC). Each current waveformis made of 400 samples (200 samples per period*2 periods=400 samples).

Both voltage and current data were recorded for the two periods at 200samples/period, resulting in 400 data points (200 voltage, 200 current)per “trial”. Recording for more than one period is done to verifyperiodicity, so that distortions or other abnormalities occurring in oneperiod are not taken to be reflective of normal operation.

The sampling frequency and Nyquist frequency are indicated as follows inEquations 1 and 2, respectively:

$\begin{matrix}{f_{sampling} = {{200\; \frac{samples}{period}*60\frac{periods}{second}} = {12\text{,}000\frac{samples}{second}}}} & \left( {{Eq}.\mspace{14mu} 1} \right) \\{f_{Nyquist} = {{60\mspace{14mu} {Hz}*2} = {120\mspace{14mu} {Hz}}}} & \left( {{Eq}.\mspace{14mu} 2} \right)\end{matrix}$

The sampling frequency is an order of magnitude greater than the Nyquistfrequency. This provides a confidence that the true shape of the entirewaveform (i.e. including unsampled values) is represented by the sampledvalues.

In an example structure for the database, the data is stored in a 400×2array—one column for voltage values and another column for currentvalues. Ten consecutive trials are taken to collect a large dataset formachine learning purposes, resulting in a 400×20 array, or 8,000 totalsample points, 4,000 of which are current values and 4,000 of which arevoltage values. The array is then exported into a .txt or other file,which can be plotted in software such as MATLAB.

Since the sampling frequency is 12,000 per second, and current andvoltage are sampled concurrently, the data for all 10 trials (assumingcontinuous) is gathered in about 0.33 seconds.

It may be difficult for current waveforms from the same bulb/bulb typetaken at different times to be compared if a phase shift is present.Identical current waveforms where sampling starts and stops at differentangles of the phase will look different, albeit only shifted by somephase angle. A visualization of this is shown in FIGS. 1A-1B, where FIG.1A depicts an example current waveform and FIG. 1B depicts the examplecurrent waveform of FIG. 1A with a phase shift applied thereto. Thewaveforms are taken of current through the same bulb.

In FIG. 1A, current waveform 100 is shown along x and y axes, where thex-axis indicates the sample number and the y-axis shows the currentvalue. The sampling begins very near the zero-crossing of the AC power.FIG. 1B shows current waveform 102 though the same load, with the x-axisagain indicating the sample number and the y-axis showing the currentvalue. A 90° phase-shift is applied to the waveform 100 of FIG. 1A toobtain waveform 102 of FIG. 1B. The sampling begins at 90° of the fullphase (approximately half way through the positive half-cycle of the ACpower).

While the human eye can observe that the two current waveforms 100 and102 are the same because 102 is just a shifted version of 100, acomputerized comparison, for instance comparing current values for thesame sample number, would result in a false differentiation. Correlatingsamples across periods would be problematic. To account for thepossibility that the start and stop times (phase angles) for samplinggathering may not be consistent, a current waveform database withpossible shifts is created based on the initial dataset of sampledcurrent level values along the sampled current waveforms. The initialdataset—the electrical data actually gathered from sampling against thebulb—is augmented by applying a phase shift to the sampled current levelvalues to produce another dataset. The current level values atcorresponding shifted angles of the phase are indicated in the database.This is iterated through a collection of phase shifts (with each shiftbeing a sequentially next 1.8° shifted from the prior shift) and the newcurrent values are stored. This can be implemented by programming in,e.g. MATLAB, to create different phase shifts of a single currentwaveform.

FIG. 2 illustrates the iterative application of a phase shift to acurrent waveform in the augmentation of an initial dataset of electricaldata, in accordance with aspects described herein. In FIG. 2, thecollected current waveform is shown by 200, where the x-axis indicatesthe sample number and the y-axis again indicates the current value foreach sample. The program, e.g. one written in MATLAB, takes the singlecurrent waveform of 200 and duplicates the waveform with a 1.8° phaseshift, or a shift of one sample (360 degrees/200 samples=1.8 degrees).The process then repeats 399 times. This results in 400 versions of thesame current waveform—1 original and 399 shifted versions. 202 and 204show two example shifts, with 202 showing the waveform of 200 shifted byapproximately 105 samples (189°) and 204 showing the waveform of 200shifted by approximately 252 samples (453.6°).

FIG. 3 depicts an example database construction and format forelectrical current data, in accordance with aspects described herein.The actual sample values are for illustration and are not representativeof actual sampled current values.

Initially, for a single bulb, a 400×4,000 matrix is established. Theheight (302) of each column reflects 200 samples/period over 2periods=400 samples. 306 reflects the 400 sampled values of a singletrial. The collection of 400 values is also referred to as a “set”. Eachtrial is augmented using the phase shift approach above. Phase shiftsare applied to produce data for 400 waveforms—1 sampled waveform and the399 shifts—totaling 400 “sets” per one trial. Since there are 10 trialsper bulb, this is repeated 9 times for a total of 4,000 sets of data(reflected by 304) for this single bulb.

This is repeated for multiple different bulbs, and, ideally, bulbs ofdiffering bulb types (e.g. LED, CFL, incandescent). 310 reflects aconcatenated database as a 400×76,000 data point matrix. Single bulbdata (400×4,000) for 19 different bulbs is concatenated to produce the(400×4,000)*19)=400×76,000 data point matrix.

Time-domain and/or frequency-domain database(s) can be constructed fortraining and testing neural networks to classify the types of bulbs.Time-domain refers to a variation in amplitude over time, whilefrequency-domain refers to a frequency of an event (e.g. peak) overtime. The conduction can be performed in any desired software package.Examples includes the TensorFlow, MATLAB, and/or PyTorch softwarepackages.

In an example, a single-sideband fast Fourier transform (FFT) wasperformed on each time-domain data set. FFT practice is known to thosehaving ordinary skill in the art. FIGS. 4A and 4B depict examplesingle-sideband fast Fourier transforms for two different LED lamptypes. FIG. 2A shows the results 402 of an FFT of a tapped-inductor (TI)buck (“tapped-buck”) converter type LED lamp, while FIG. 2B shows theresults 404 of an FFT of a buck converter type LED lamp. On mostoccasions, the buck converter type LED displayed significantly morepower in the lower frequency range (<60 Hz) than the tapped-buckconverter type LED.

In an example, the neural network(s) are trained and tested in bothtime-domain database and frequency-domain database data. A benchmark ofdifferent parameters, such as number of neurons, database types(frequency-domain or time-domain), and platforms (e.g. TensorFlow orMATLAB), was performed. According to performance requirements (e.g.accuracy, running time, number of neurons used, etc.), and as explainedin further detail below, the combination of these parameters thatconstructs the neural network with optimal performance was found toinclude three neurons in one hidden layer, trained and tested using thefrequency domain database data, and built in TensorFlow.

Data of current waveforms that includes both captured current waveformdata and the augmented data resulting from the phase shifts were builtinto one or more databases for training/testing purposes. In someexamples, there are several databases covering both time domain andfrequency domain data, and optionally with altered sampling rates orother parameters.

Performance of LED and other bulb types (incandescent, CFL) wereclassified and then trained using a TensorFlow machine learningalgorithm. Input for the algorithm included current waveform data fromthe database(s) explained above and an output vector resulted thatindicated seven categories to which each bulb (via its associated inputdata) could be assigned. These categories include (i) four classes forfour different types of LED lamps, corresponding to four differentdriving circuits in those LED lamps, (ii) an incandescent class, (iii) aCFL class, and (iv) an ‘unknown’ class. The unknown classification isintended for results that cannot be confidently placed into one of thewell-defined classes. It is typical for the application of a machinelearning model to output a confidence level of the classification toeach of one or more classes. If the confidence level for all otherclasses is below a threshold, 20% for instance, the bulb could beclassified to the ‘unknown’ class.

The usefulness of the classification is premised on a hypothesis thatdifferent load types—LED, CFL, incandescent, etc.—contain differentelectrical components that affect their electrical behavior. Electricalbehavior includes current through the load, light output, and flickerbehavior, as examples.

Four different converter circuits commonly drive different LEDs. Theseinclude: buck converter, buck-boost converter, tapped-buck converter,and flyback converter. Machine learning models built in accordance withaspects described herein designate a class for each of these four drivecircuits. To the extent that any other converter circuits or otherdistinctive circuitry exists as between LED lamps, correspondingadditional classes could be incorporated into the model. A focus isplaced on LED drive circuits in particular because flickeringexperienced with other lamp types tends to reflect a problem with thedimmer rather than the bulbs themselves. Incandescent lamps, forinstance, are simple resistive loads. LED performance, however, can varybased on the quality of components, manufacturer, actual components use,and other factors that may matter more than with other lamp types.

FIGS. 5A and 5B depict example current waveforms through two differentLED lamp types, illustrating difference in electrical performance asbetween the two types. The current waveforms 502 of FIG. 5A and 504 ofFIG. 5B each show current values (y-axis) for a single trial of 400samples (x-axis). FIG. 5A is for a tapped-buck converter LED (“Type 1”)and FIG. 5B is for a buck converter LED (“Type 2”).

The two waveforms 502 and 504 display two distinctly different shapes.The current is relatively constant at the peak for the Type 1 LED, butdecays for the Type 2 LED. The wattage affects the amplitude of eachwave, where amplitude correlates to wattage value. A similarity betweenthe two is the periodicity; they are both distorted versions of thesinusoidal input. In order to determine if the differences in waveformsis due to two different circuits composed of different discrete elementsor the same circuit composed of the same discrete elements withdifferent values, a bulb decomposition—a manual disassembly—wasperformed, and the two different circuits were found.

A typical tapped-buck converter contains a stepdown autotransformer forenergy transfer purposes, a switching circuit, and storage elements suchas capacitors and inductors. A typical buck converter contains acapacitor, inductor, or combination of both. In the case of Type 1, thetapped-buck LED, there were three capacitors.

The two circuits directly corresponded to the shape of the waveforms.Thus, the differences in LED driving circuits were the cause of thesignificant differences in the shape of the current waveform through theLED. One hypothesis based on the teardown is that the poorer electricalperformance of the buck converter (Type 2) in terms of flicker resultsbecause of the fewer number of components, making it less expensive toproduce.

As noted, the seven classifications into which an example model willclassify data of the example current waveform database are:

-   -   Buck Converter (LED);    -   Tapped-Buck Converter (LED);    -   Buck-Boost Converter (LED);    -   Flyback Converter (LED);    -   Incandescent    -   CFL; and    -   Unknown

The types of loads that are potentially encountered for purposes ofclassification using the model would typically dictate the particularclasses to be included in the model. If only LED loads are expected tobe encountered and classified, the classes could include: (i) arespective class for each potential type of LED drive circuitry, and(ii) an ‘unknown’, ‘Default’ or ‘Other’ class. However, because in thefield it is foreseeable that other types of loads, e.g. incandescent orCFL may be encountered, it makes sense to include a discrete class forthese types so as to avoid misclassification of them into an LED classor the ‘unknown’ class, for instance.

By the above, a database is built by the collection of actual currentwaveform data, followed by data preprocessing to, e.g., augment thatdata based on phase shifts and then apply FFTs to the time-domain datato produce frequency-domain data. By taking the fast Fourier transformof an ‘input’ variable and keeping the ‘output’ variable the same, afrequency-domain database is available.

Thus, at an initial stage, current waveform data for each of severalbulbs is collected across multiple (e.g. 10 trials). The multiple trialsmay be continuous (chronologically adjacent) or non-continuous. Multipletrials may be taken to identify and potentially eliminate noise, ifdesired. Data processing takes the sampled values of the trails as inputand shifts each trial data 399 times to obtain 400 current waveforms.The output of this processing is a file, e.g. a MATLAB *.mat file, thatconsists of 4,000 sets of current waveforms for the target bulb. This isdone for each bulb of a test set, such that each .mat file correspondsto one bulb and includes 400 samples×4,000 sets of data. In a nextstage, the data of the .mat files for the bulbs are concatenatedtogether and labeled. By ‘labeled’ is meant that, for each set (e.g.group of 400, corresponding to a waveform) of data points, a label isassociated with that set to indicate the bulb's class. This associatestrail data to the actual, known classes of the training load types, totrain of the model. The resulting data set, stored in one example as aMATLAB file, has two variables—one is the “input”, and another is the“output”. The input variable includes the concatenated data for thebulbs. The size for ‘input’ variable is 400 samples×76000 sets (for a 19bulb sample set). The ‘output’ variable contains the classes for currentwaveforms. Each current waveform is associated with only one class. The‘output’ variable is in the size of 7 classes×76,000 sets, using theexample number of classes and sample bulbs described herein. The rowcorresponds to the class of each current waveform. The columncorresponds to the data of each current waveform. If current waveform inone column of ‘input’ is from the tapped buck converter LED, the outputvector is “1 0 0 0 0 0 0”, for instance. The comprehensive list oflabels is shown in Table 1:

TABLE 1 Input Waveform Output Vector Tapped-buck Converter [1 0 0 0 0 00] Buck Converter [0 1 0 0 0 0 0] Buck Boost Converter [0 0 1 0 0 0 0]Flyback Converter [0 0 0 1 0 0 0] CFL [0 0 0 0 1 0 0] Incandescent [0 00 0 0 1 0] Unknown [0 0 0 0 0 0 1]

Classes that are known but that have not yet been ‘defined’ in the sensethat they have not yet been encountered in the trial data can bereserved using an ‘undefined’ vector in the table. If at a later timetrial data is acquired for those classes, a definition of the class canbe made. Additionally, current waveforms of unknown bulbs can beindicated in the database and labeled as such using the unknown label.

The ‘unknown’ classification can be used in situations where theconfidence of a classification to any other class is sufficiently low.Undefined classes may be included in the model as a placeholder duringtraining but without any of the training data being classified/labeledtherein. Additionally or alternatively, in some examples, noise isintroduced as the ‘distribution’ for those undefined classes, the noisebeing such that it would never be observed in an actual implementationof any bulb. The model would therefore not assign any bulb to thatclass. Then, once data on an undefined class is obtained, the noise canbe removed and the model can be retrained incorporating that new datalabeled for the previously undefined class.

For algorithms in machine learning, a multilayer perceptron can be usedas a starting point. Since the current waveforms are differentiable byhuman eyes, a multilayer perceptron is complex enough to recognize thedifferences. A multilayer perceptron is a relatively simple network thatrequires less computational power than other networks. This enablesmodels built on these simple networks to be used and applied by anyrange of processing devices, including processing circuits, e.g.microprocessor(s), that may be implemented in dimmers.

FIG. 6 depicts an example structure of a neural network in accordancewith aspects described herein. Neural network 600 is an examplemultilayer perceptron, having one input layer with 400 neurons (alsoreferred to as nodes), one hidden layer with 3 neurons, and one outputlayer with 7 neurons. The input is a 400×1 vector denoting the samplesof a current waveform of two consecutive periods. The output is a 7×1vector denoting the 7 classes defined above.

Neural networks with one hidden layer can be implemented in varioussoftware, include MATLAB and TensorFlow. Additionally, they can betrained based on either the time domain database or frequency domaindatabase. The following describes benchmark results between (1) neuralnetworks trained based on the time-domain database and (2) neuralnetworks trained based on the frequency-domain database, in both MATLABand TensorFlow. The phrases “model” and “neural network” are usedinterchangeably herein to refer generally to the construct that isapplied to classify an input into an output.

Three factors considered during the benchmark process include accuracy,running time, and the number of neurons used in the hidden layer.Example running times presented below do not incorporate the computationtime for the fast Fourier transforms, though the computation time toperform the FFTs could easily be determined and taken into account incalculations of expected running time of a neural network trained basedon the frequency-domain database. With respect to the number of neuronsused in the hidden layer, this number generally affects the complexityof the model. A higher number of neurons in the hidden layer(s) producesa more complex model that would generally take more time to classifyinputs (“runtime”) than models with fewer neurons. The advantage is thatit generally increases accuracy to have more neurons in the hiddenlayer(s).

Accuracy is calculated based on the true positive rate that the trainedneural network/model properly classifies the bulb types of the currentwaveform in the testing database. The testing database could be asubset, say 10%, of the overall database. In the examples herein, thetesting database is 7,600 current waveforms, which is 10% of the 76,000in the overall database, leaving 90% of the waveforms for training.Various neural networks were trained, and each included one hidden layerwith a varied number of neurons in that layer. The average time of 100trial classifications (reading the input and making the classification)was calculated and defined as the running time for the model.

FIG. 7 depicts example performance of neural networks trained based on atime domain database in accordance with aspects described herein. Inthis example the training was performed in MATLAB. The neural networkswere implemented with one hidden layer that ranged from 3 to 30 neurons(along the x-axis) big. Each step increases the number of neurons bythree. The accuracy over this span is plotted on the y-axis andincreases from 80% to 99%, saturating at over 99% with 27 neurons. Therunning time increases from 0.342 seconds to 0.394 seconds. Based onthis, desired performance may be with 27 neurons in one hidden layer,with a runtime of 0.385 seconds on the particular computer systemperforming the classification of the these trials.

FIG. 8 depicts example performance of neural networks trained based on afrequency domain database in accordance with aspects described herein,and again performed in MATLAB. The neural networks were implemented withone hidden layer that ranged from one to ten neurons (x-axis) big, and astep size of one neuron. The accuracy over this span (indicated on they-axis) increases from 84% to 100%, saturating at 100% with two neuronsin one hidden layer. The running time increases from 0.331 seconds to0.365 seconds. A desired performance based on these results may occurwith three neurons in one hidden layer, with an accuracy of 100% and aruntime of 0.340 seconds. There is an observable anomaly in the runningtime values in that the running time decreases when increasing from twoneurons to three. Different activation functions could have differentcomplexities, thus affecting running time. In some approaches, differentactivation functions of the neural network could be used/tested in theneural network and its overall performance assessed.

Thus, with the testing above using MATLAB, the performance of neuralnetworks trained based on the frequency-domain data is better than thatof neural networks trained based on the time-domain data in terms of thenumber of neurons used to achieve 100% accuracy and the running time.The neural network trained based on frequency-domain data with optimalperformance can use only three neurons to reach 100% accuracy, which isfar less than the number of neurons (27) used by the neural networktrained based on time domain data to achieve a desired performance. Inaddition, the running time of the neural network trained based onfrequency-domain data with the desired performance is around 0.340seconds, which is slightly less than the running time of the neuralnetwork trained based on time domain data with desired performance,0.385 seconds.

The training results using TensorFlow are shown in FIGS. 9 and 10. FIG.9 depicts example classification performance using the time domaindataset, in accordance with aspects described herein. The neuralnetworks were implemented with one hidden layer, ranging from 7 to 12neurons (along the x-axis). Each step increases the number of neuronsby 1. The accuracy over this span is plotted on the y-axis and increasesfrom approximately 94.5% to >99%. The running time ranges from about0.0592 seconds to about 0.0614 seconds. Although the accuracy increaseswith the number of neurons, the returns are diminishing. Based on this,desired performance may be with nine neurons, at a running time of 0.605seconds.

FIG. 10 depicts example classification performance using frequencydomain data, in accordance with aspects described herein. The neuralnetworks were implemented with one hidden layer, ranging from 1 to 6neurons (along the x-axis). Each step increases the number of neuronsby 1. The accuracy over this span is plotted on the y-axis and increasesfrom approximately 74% to >99%. The running time ranges from about0.0475 seconds to about 0.056 seconds. Using the frequency-domaindatabase, an accuracy of nearly 100% was achieved with two neurons.Based on this, a desired performance may be with 6 neurons, with a runtime of 0.055 seconds.

For TensorFlow, performance in the frequency domain was better than thatin the time domain in terms of fewer neurons and less running time.Table 2 below summarizes the performance comparison between the aboveresults from MATLAB and TensorFlow:

TABLE 2 MATLAB TensorFlow Running Time Time Domain 0.385 0.060 Freq.Domain 0.340 0.055 Number of Neurons Time Domain 27 12 Freq. Domain 3 2

TensorFlow outperforms MATLAB in the aspect of running time and numberof neurons in each layer. TensorFlow runs faster than MATLAB andconsumes less computational power (fewer neurons) in this experiment. Ingeneral, it may be desired to train the network with time domain data.Although the performance based on the frequency domain data was betterin terms of running time and number of neurons according to Table 2above, the cost to perform the FFTs may be significant and the processto perform the FFTs can be complicated. Further, the increase in runningtime resulting from an increase in the number neurons (e.g. from 2 to12) is small. The sizeable increase in the number of neurons results inan insignificant increase in the runtime of the model to classify atarget load.

In one embodiment, the trained model built using the TensorFlow machinelearning framework uses a neural network having one hidden layer withthree neurons and is trained on the data of the time-domain database. Inthis example design, the neural network can achieve over 99% accuracy inapproximately 0.06 seconds.

For informational and contextual purposes, an example TensorFlowinstallation and execution guide used for examples described herein isprovided. The system environment to run code was Python 3.5.2 and theTensorFlow version was 1.7.0. The PATH environment was properly modifiedand the “pip” Python package manager was installed. Instructions are asfollows

From the command line tool, change directory to the local copy of“\Software\Machine_Learning\TensorFlow”. Type ‘python train.py -h’ todisplay the usage information, which is shown in the figure below. Thecommand line usage is train.py [-h]--f F [-n N] [-w W] [-b B] [-r R] [-eE] [-s S].

For example, if the user wants to test the model with data file“Sa200_Lbl7_V2_Tensor.mat”, 2 layers, 40 neurons in each hidden layer,0.1 learning rate for 100 epochs, the following command line should beused: python train.py --f “Sa200_Lbl7_V2_Tensor.mat”-n 2 -w 40 -e 100-r 1. After training and testing are done, the test result and time usedwill be shown. In one example, it took 69.56 seconds to train thenetwork and 0.06 seconds to run. The accuracy was 73.77%.

The following sets forth example MATLAB code for dataprocessing/augmentation:

%% input the data from txt file to matlab % enter the data txt file namehere, data txt file should be in format of % #_of sample_points (rows) *#_of_samples_per bulb(columns) file_name = ′test′; %update the txt filename fname = [file_name,′.txt′]; fid = fopen(fname,′r′); % size is400*10 for each bulb num_sample_points = 400; %need to be changenum_samples_per_bulb = 10; %need to be change size =[num_sample_points,num_samples_per_bulb]; raw_data=fscanf(fid,′%f′,size)%% manually phase shift each sample processed_data = [ ]; 1 = 0; for i =1:num_samples_per_bulb processed_data = [processed_data,raw_data(:,i)];for j = num_sample_points*1+2:num_sample_points*(1+1) column =processed_data(2:num_sample_points,j-1); move_point =processed_data(1,j-1); column = [column;move_point]; processed_data =[processed_data,column]; end 1=1+1; end %% Create database of each bulb% create corresponding mat file of processed data of each bulbssave([file_name,′.mat′], ′processed_data′);

The following sets forth example MATLAB code for building and trainingmodel in accordance with aspects described herein:

  % starting num of layers num=3; % vector to save the num of layersxx=[ ]; % vector to save the error rate yy=[ ]; % vector to save thetraining time ttrain=[ ]; % vector to save the running time trun=[ ]; %try ten times with different num of layers for i=1:10 % x denotes theinput vector x = input; % y denotes the input vector t = output; % clearthe net from previous iteration clear net; % Choose a Training Function% ′trainlm′ is usually fastest. % ′trainbr′ takes longer but may bebetter for challenging problems. % ′trainscg′ uses less memory. Suitablein low memory situations. trainFcn = ′trainscg′; % Scaled conjugategradient backpropagation. % create a new net net = patternnet(num,trainFcn); net.divideFcn= ′divideblock′; % Setup Division of Data forTraining, Validation, Testing net.divideParam.trainRatio = 85/100;net.divideParam.valRatio = 10/100; net.divideParam.testRatio = 5/100; %Setup the stopping condition net.trainParam.max_fail=20; % Train theNetwork % Start the timer tic; [net,tr] = train(net,x,t′useGPU′,′yes′);tt=toc; % Record the training time ttrain=[ttrain tt]; % Test theNetwork % Start the timer tic y = net(x); tt=toc; trun=[trun tt]; %Record the running time e = gsubtract(t,y); performance =perform(net,t,y) tind = vec2ind(t); yind = vec2ind(y); %calculate errorrate percentErrors = sum(tind ~= yind)/numel(tind); % adjust the num oflayers num=num+1; % record num of layers xx=[xx num]; % record num oferror rate yy=[yy percentErrors]; end % Convert error rate to accuracypercentage yy=(ones(1,10)-yy)*100; % PLot performance figure(1)title(′ML perforamce on 16 bulbs with FFT and SCG training function′)yyaxis right plot(xx,trun,′r-d′,′LineWidth′,2,′MarkerSize′,7)xlabel(′Num of layers′) ylabel(′Running Time (s)′) yyaxis leftplot(xx,yy,′b-o′,′LineWidth′,2,′MarkerSize′,7) ylabel(′Accuracy (%)′)legend(′Accuracy′,′Running Time′,′Location′,′northwest′) box on; gridon; set(gca,′FontSize′, 15); figure(2) title(′ML perforamce on 16 bulbswith FFT and SCG training function′) yyaxis right plot(xx,ttrain,′rd′,′LineWidth′,2,′MarkerSize′,7) xlabel(′Num of layers′) ylabel(′TrainingTime (s)′) yyaxis left plot(xx,yy,′b-o′,′LineWidth′,2,′MarkerSize′,7)ylabel(′Accuracy (%)′) legend(′Accuracy′,′TrainingTime′,′Location′,′northwest′) box on; grid on; set(gca,′FontSize′, 15);% View the Network %view(net) % Plots % figure, plotperform(tr) %figure, plottrainstate(tr) % figure, ploterrhist(e) % figure,plotconfusion(t,y) % figure, plotroc(t,y)

The following sets forth example TensorFlow code for building andtraining a model in accordance with aspects described herein:

from__future__import print_function import sys import argparse importtensorflow as tf import scipy.io import time import numpy as np parser =argparse.ArgumentParser( ) required =parser.add_argument_group(′required arguments′)required.add_argument(′--f′, help=′filename of training and testingmatrix′, required=True) parser.add_argument(′-n′,′--n′, help=′num oflayers, default = 3′, default=3) parser.add_argument(′-w′, ′--w′,help=′num of neurons in each hidden layer, default = 25′, default=25)parser.add_argument(′-b′,′--b′, help=′batch size, default = 1600′,default=1600) parser.add_argument(′-r′,′--r′, help=′learning rate,default = 0.01′, default=0.01) parser.add_argument(′-e′,′--e′,help=′training epochs, default = 20′, default=20)parser.add_argument(′-s′,′--s′, help=′display step, default = 1′,default=1) results = parser.parse_args( ) filename = results.f n_layers= int(results.n) n_hidden = int(results.w) batch_size = int(results.b)learning_rate = float(results.r) training_epochs = int(results.e)display_step = int(results.s) mat = scipy.io.loadmat(filename)xtrain=mat[′xtrain′] ytrain=mat[′ytrain′] xtest=mat[′xtest′]ytest=mat[′ytest′] n_sample = xtrain.shape[0] n_input = xtrain.shape[1]n_class = ytrain.shape[1] x = tf.placeholder(′float′, [None, n_input]) y= tf.placeholder(′float′, [None, n_class]) def multiplayer_perceptron(x,n_layers, n_input, n_hidden, n_class): layer = tf.add(tf.matmul(x,tf.Variable(tf.random_normal ([n_input, n_hidden]))),tf.Variable(tf.random_normal([n_hidden]))) layer = tf.nn.relu(layer) fori in range(1, n_layers): layer = tf.add(tf.matmul(layer,tf.Variable(tf.random_normal([n_hidden, n_hidden]))),tf.Variable(tf.random_normal([n_hidden]))) layer = tf.nn.relu(layer)out_layer = tf.add(tf.matmul(layer,tf.Variable(tf.random_normal([n_hidden, n_class]))),tf.Variable(tf.random_normal([n class]))) return out_layer # Set upmodel pred = multiplayer_perceptron(x, n_layers, n_input, n_hidden,n_class) # Define loss function cost =tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred,labels=y)) # Define Optimizer optimizer =tf.train.AdamOptimizer(learning_rate).minimize(cost) # Initialize allvaribles init = tf.initialize_all_variables( ) correct_prediction =tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1)) accuracy =tf.reduce_mean(tf.cast(correct_prediction, ′float′)) # Train the modelwith tf.Session( ) as sess: sess.run(init) start = time.clock( ) forepoch in range(training_epochs): avg_cost = 0 total_batch = int(n_sample/ batch_size) for i in range(total_batch): _, c = sess.run([optimizer,cost], feed_dict={x: xtrain[i*batch_size : (i+1)*batch_size, :], y:ytrain[i*batch_size : (i+1)*batch_size, :]}) avg_cost += c / total_batchif epoch % display_step == 0: print(′Epoch:′, ′%04d′ % (epoch+1),′cost=′, ′{:.9f}′.format(avg_cost)) elapsed = (time.clock( ) - start)print(′Opitimization Finished!′) # Test start = time.clock( ) acc =accuracy.eval({x: xtest, y: ytest}) elapsed2 = (time.clock( ) - start)print(′Accuracy:′, acc) print(″Training time used: ″,elapsed)print(″Running time used:″,elapsed2)

Although example neural networks described herein are constructed usingonly one hidden layer, the number of hidden layers could be increased.An assessment of the accuracy, running time, and number of neurons ineach layer under an increased number of hidden layer(s) would be helpfulfor assessing whether the increased complexity of the neural networkprovides significant enough advantages to warrant the increase incomputational resources to achieve an acceptable runtime.

As detailed in various embodiments below, a model is built, trained, andapplied to classify lighting loads. Only one ‘sample’ current waveformis needed as input to the model to classify the load, though additionalsamples could be fed into the model, if desired. If classification to adefined lighting load class is successful, then dimmer operatingparameter(s) with which to configure the dimmer can be ascertained basedon that lighting load class. The parameter(s) can be any parameters thatconfigure the dimmer for desired lighting load dimming performance. Theyinclude but are not limited to a selection between forward and reversedimming mode, firing and ending conduction angles for each half cycle,maximum conduction angle, various options for dimmer startup, and otherparameters for operation. The dimmer or a remote entity can build,maintain and/or store a library or database that identifies optimaldimmer operating parameters and associated lighting load classes,correlating each class to a respective set of operating parameters to beused for that class. The specific parameters may vary depending on theparticular dimmer model, since desired parameters for dimming a loadwith one dimmer may vary from those of another dimmer. The respectivedimmer operating parameters associated with a class could be tailored tooptimize performance of the drive circuitry of lighting loads of thatlighting load class in order to meet a desired goal or specification,for instance to minimize flicker of the lighting load.

The desired dimmer operating parameters are configured on the dimmerafter they are identified. In an example, the dimmer identifies andapplies the parameters to itself. In other examples, a smartphone orother entity in communication with the dimmer issues programminginstructions or other directives to the dimmer, which cause the dimmerto implement the parameters of its operation.

If a dimmer is unsuccessful at classifying a target lighting load usinga machine learning model, insofar as a particular well-defined class ofthe model has not been identified with a high enough confidence, theelectrical current data that the dimmer obtained for input to the modelcan be sent to a remote entity, for instance one that maintains a latestmodel that has been trained or retrained with the most current trainingdata. That entity could classify the load using the updated model andprovide a response to the dimmer. The response could be an indication ofthe proper class if the dimmer is properly configured to recognize thatclass and the associated operating parameters with which to configureitself. In another example, for instance one in which the class isrelatively newly defined such that it does not exist in the version ofthe model that the dimmer possesses, the remote entity identifies andsends a set of operating parameter(s) to the dimmer for dimmerconfiguration.

Additionally or alternatively, the dimmer could receive an updated modeland attempt the classification again.

In yet another example, the dimmer selects ‘default’ parameters whenclassification is unsuccessful, or the dimmer invokes a process toascertain desired operating parameters by way of a different approach,for instance by prompting a user to identify the load type and/orparameters to use.

As an enhancement, flicker characteristics can be associated to themachine learning model classes based on identifying the correspondencebetween flicker and different characteristics of the lighting loads(wattage, driving circuit, type of LED lighting device) or dimmer type(ELV, MLV, Incandescent). Mapping current waveforms from differentlighting loads to the bulbs' observed flicker properties (if present)identifies which waveforms result in flicker. In this manner, the modelcould be trained to maps current waveform to flicker properties. Byusing this in a dimmer, the dimmer could determine whether a particulardimming strategy is likely (as indicated by the model) to result inflicker by measuring the current waveform.

FIGS. 11-15 depict example processes for dimmer configuration, inaccordance with aspects described herein. One or more aspects of theseprocesses are performed by a dimmer. In this regard, the dimmer mayinclude hardware for executing program code to perform actions, such asthose described herein, including those as detailed with reference toFIGS. 11-15. Further details of example dimmers are provided elsewhereherein. Generally, a dimmer is for controlling conduction of a supply ofpower to a load, for instance a lighting load. The dimmer can include aline input terminal configured to be electrically coupled to the supplyof power and a load output terminal configured to be electricallycoupled to the lighting load. A switching circuit may be electricallycoupled in series between the line input terminal and the load outputterminal. The switching circuit may be configured to be selectivelycontrolled between an ON state and an OFF state. Additionally, thedimmer can include a memory and a processor/processing circuit incommunication with the memory. The memory can store program instructionsfor execution by the processor to perform aspects of processes describedherein.

Referring initially to FIG. 11, the process obtains (1102) a machinelearning model, such a model as described herein. The model may be inthe form of data file(s) or stricture(s) that are portable in that theycan be stored/saved to memory and communicated between hardware devices.By obtaining is meant loaded, opened, acquired, received, or the likefrom component(s) of the dimmer or component(s) remote from the dimmer,for instance from a remote entity across one or more network(s). Themachine learning model is configured for classifying lighting loads intoa plurality of different lighting load classes based on properties ofelectrical current through the lighting loads. Example such propertiesare sampled current levels, as described herein.

The different lighting load classes can correspond to differentlamp/bulb types having differing internal circuitry and electricalperformance thereof. For instance, the different lighting load classescan include (i) a class for incandescent lamps, (ii) a class for compactfluorescent lamps, and (iii) more than one class for light emittingdiode (LED) lamp types. Each such LED lamp type of the LED lamp typescan differ from the other LED lamp types, for instance based at least onits drive circuitry. Each class of the more than one class cancorrespond to the drive circuitry of a respective LED lamp type of theLED lamp types.

The process of FIG. 11 continues by conducting (1104) the supply ofpower to the lighting load and obtaining electrical current datarepresenting properties of electrical current through the lighting loadover a duration of time. The lighting load refers to a target load to beclassified, for instance a bulb that a user has recently installed.Obtaining the electrical current data can include sampling the currentlevels through that target bulb based on conducting the power to theload. The power conducted could be full power cycle(s) or less than fullcycle(s).

The process applies (1106) the machine learning model using the obtainedelectrical current data representing the properties of electricalcurrent through the lighting load. This is done in an attempt toclassify the lighting load. In this regard, the applying may or may notsuccessfully classify the load. There are different actions that thedimmer might take in different situations. Accordingly, the processproceeds by performing (1108) appropriate processing based on the resultof that applying. In one example, performing processing includesconfiguring the dimmer with one or more dimmer operating parameters thatcontrol operation of the dimmer.

The process of FIG. 11 can optionally continue by triggering provision(1110) of an alert to a user indicating whether the applying classifiesthe lighting load into a lighting load class of the plurality ofdifferent lighting load classes. The alert may convey to the userwhether classification was successful. In the case that it wassuccessful and proper parameters were applied, the alert may moregenerally convey that the dimmer was successfully configured for properor desired operation. In the case that the bulb was not classifiedand/or there was a problem with configuring the dimmer, the alert mayindicate that. The alert could be delivered in audio, visual and/orhaptic forms, as examples. For instance, the alert could be provided byway of illuminated lights in the dimmer, an audio tone played by thedimmer, and/or notifications or alerts to an associated softwareapplication installed on a user mobile device. It may be possible to‘pair’ a dimmer to a user device to provide a communication and/orconfiguration channel between them and enable a user to interact withthe dimmer.

When the applying the model classifies the lighting load into a lightingload class of the plurality of different lighting load classes, then,referring to FIG. 12, the process can identify (1202), based on thelighting load class into which the lighting load was classified, the oneor more dimmer operating parameters with which to configure the dimmeras one or more parameters that configure the dimmer for desired lightingload dimming performance by the dimmer. There are various options forthe source of these parameters. As explained in further examples herein,the dimmer could hold a library/database that correlates, to each class,the optimal or desired dimmer operating parameters for that class. Thelibrary may be referenced to identify the specific parameter(s) withwhich to configure the dimmer for operation in dimming the target bulbjust classified.

After identifying the parameters at 1202, the process can then configure(1204) the dimmer with the identified one or more dimmer operatingparameters.

There may be situations where attempted classification by the dimmerusing a model thereon is not successful. This may occur, as one example,when the respective confidence level that the bulb is classified intoeach class is below a given threshold. In one embodiment, the performingprocessing (1108) includes, referring to FIG. 13, sending (1302) theobtained electrical current data to a remote entity. The remote entityis a remote computer system, such as a cloud-based server or a usersmartphone, as examples. The dimmer then receives (1304) a response fromthe entity. If the entity stores or has access to an updated model, thenone response is provision of that updated model to the dimmer. Theprocess of FIG. 13 continues by determining (1306) whether the responseincludes an updated model. This situation includes not only the scenariowhere the response data itself includes the model, but also thesituation where the response informs the dimmer where to retrieve theupdated model. If an updated model is returned (1306, Y), the processproceeds to 1106 of FIG. 11 where it applies the updated model andproceeds pursuant that process, i.e. by using the updated machinelearning model and repeating the applying (1106) to classify thelighting load. Ideally, the repeating the applying classifies thelighting load into a lighting load class indicated by the updated model,and the dimmer can identify, based on the lighting load class indicatedby the updated model, the one or more dimmer operating parameters andperform the configuring the dimmer with the identified one or moredimmer operating parameters (see FIG. 12).

Referring back to FIG. 13, the remote entity might instead use theupdated model to classify the load based on the data provided by thedimmer and respond with an indication of the proper class as ascertainedby applying the updated model and/or an indication of parameter(s) thatthe dimmer is to use. In the example of FIG. 13, the response returnedto the dimmer is not an updated model (1306, N) and is instead anindication of the class of the lighting load. The process proceeds toFIG. 12, where the dimmer identifies, based on the lighting load classindicated by the updated model and conveyed to the dimmer by the remoteentity, the one or more dimmer operating parameters. In some examples,the parameters may have been received along with the indication of theclass from the server. Alternatively, the dimmer may be configured todetermine, based on the returned class, the proper parameters to use,for instance by referencing a library of parameters as explained above.

Some classification attempts may be unsuccessful even with the mostupdated model. The application of the model in these situations fails toclassify the lighting load into any lighting load class of the differentlighting load classes of the model. The process of FIG. 14 is invoked,in which the process selects and applies (1402) a default one or moredimmer operating parameters as the one or more dimmer operatingparameters with which to configure the dimmer.

If the device applying the model is different from the device thatbuilds the model, the device applying the model may occasionally receivean updated model. The model may be updated with respect to the classesincluded in the model, the level of training the model has been putthrough, and/or with respect to the construct of the neural network ofthe model, as examples. The ‘updated’ model may therefore may be a newversion of the existing model or a completely new model altogether. Inaccordance with aspects described above with reference to FIG. 11, amachine learning model is maintained on the dimmer for lighting loadclassification. FIG. 15 depicts an example of updating that model. Theprocess includes periodically or aperiodically receiving (1502), e.g.from a remote entity, an updated machine learning model. This may beretrieved responsive to the dimmer requesting or checking for an updatedmodel, or the server pushing the model to the dimmer absent an explicitrequest. In some examples, the updated model is delivered as part of afirmware update to the dimmer issued to it by a remote server or by asoftware application (e.g. mobile application) of a dimmer user'sdevice. The process continues by replacing (1504) the maintained machinelearning model with the received updated machine learning model suchthat the updated machine learning model becomes the maintained machinelearning model for lighting load classification. To facilitate modeldelivery, the dimmer can include a network interface through which themodel is received, for instance a wireless network interface connectedto a consumer's wireless network through which the dimmer is connectedto a network. Alternatively, the network connection of the dimmer may bevia a powerline network communicating with a consumer's network. Themodel can be obtained through the network interface from a remote entityconnected to the network.

FIG. 21 depicts another example process for dimmer configuration, inaccordance with aspects described herein. The process follows actionsperformed by a dimmer when the model is stored and applied on a remoteentity, for instance a remote server or a consumer's personal computersystem that has the model. As above, the dimmer may be for controllingconduction of a supply of power to a lighting load, and include a lineinput terminal, load output terminal, memory, and a processor incommunication with the memory. The dimmer may be configured to performthe process of FIG. 21.

The process begins with the dimmer conducting the supply of power to thelighting load and obtaining (2102) electrical current data representingproperties of electrical current through the lighting load over aduration of time. This obtains the sample(s) on which the classificationof the load will be based. The dimmer sends (2104) the electricalcurrent data to a remote entity. The remote entity is configured toprovide a response, for instance a response indicating a class intowhich the load is classified based on application of the model, or aresponse indicating operating parameters for the dimmer. Accordingly,based on the response being an indication of the class itself, theprocess proceeds by receiving (2106) from the remote entity anindication of a lighting load class into which the lighting load isclassified, and then identifying (2108), based on that indication, theone or more dimmer operating parameters with which to configure thedimmer to control its operation. As described above with reference toFIG. 12, the dimmer could identify the parameters to use based on astored library of parameters to use for different load classes. Thelibrary could be dimmer type or model specific. The dimmer couldmaintain its own database of dimmer operating parameters and associatedlighting load classes, each lighting load class of the associatedlighting load classes being associated with a respective one or moredimmer operating parameters on a basis that the respective one or moredimmer operating parameters optimizes performance of drive circuitry oflighting loads of that lighting load class to minimize flicker on thelighting load.

After identifying the operating parameters (2108), or if instead theresponse from the remote entity to 2104 is an indication of the one ormore dimmer operating parameters, the process proceeds by configuring(2112) the dimmer with the identified operating parameters to controloperation of the dimmer.

By the above, based on a classification of the lighting load, theclassification being based on the sent electrical current data, theprocess configures the dimmer with the one or more dimmer operatingparameters that control operation of the dimmer. The classification ofthe lighting load includes a classification into a lighting load classof a plurality of different lighting load classes that correspond todifferent lamp types having differing internal circuitry and electricalperformance thereof. The different lighting load classes could include,as examples: (i) a class for incandescent lamps, (ii) a class forcompact fluorescent lamps, and (iii) more than one class for lightemitting diode (LED) lamp types. Each LED lamp type of the LED lamptypes could differ from the other LED lamp types based at least on itsdrive circuitry, and each class of the more than one class couldcorrespond to the drive circuitry of a respective LED lamp type of theLED lamp types. The process of FIG. 21 concludes by optionallytriggering provision (2114) of an alert to a user indicating whether thelighting load is successfully classified into a lighting load class.

FIGS. 16-20 depict example processes of a remote entity to facilitatedimmer configuration, in accordance with aspects described herein. Theprocesses may reflect what occurs on the remote entity as one or moreaspects described above are performed on the dimmer. The remote entitycould be any computer system or other device configured for processing.Examples include, but are not limited to, a server on a wide areanetwork, such as the internet, that the dimmer connects to, or a userdevice such as a personal computer or mobile device.

Referring initially to FIG. 16, which details aspects of model building,the process obtains (1602) a set of electrical current data representingproperties of electrical current through each lighting load of acollection of different lighting loads. The obtained set of electricalcurrent data includes, as an example, an initial dataset of sampledcurrent level values along a current waveform having a phase, thesampled current level values being sampled at corresponding angles ofthe phase. The method further includes augmenting (1604) the obtainedset of electrical current data. An example process for such augmentationis described and depicted with reference to FIG. 17 below.

The process of FIG. 16 continues by building the machine learning modelusing a machine learning algorithm and the obtained set of electricalcurrent data. The building includes training the machine learning modelusing the obtained set of electrical current data and, in many cases,the augmented data. The machine learning model is configured forclassifying lighting loads into a plurality of different lighting loadclasses based on properties of electrical current through the lightingloads. The different lighting load classes correspond to different lamptypes having differing internal circuitry and electrical performancethereof. The different lighting load classes include, for instance: (i)a class for incandescent lamps, (ii) a class for compact fluorescentlamps, and (iii) more than one class for light emitting diode (LED) lamptypes. Each such LED lamp type of the LED lamp types differs from theother LED lamp types based at least on its drive circuitry. Each classof the more than one class of LEDs corresponds to the drive circuitry ofa respective LED lamp type of the LED lamp types. FIG. 16 proceeds byoptionally, e.g. when the dimmer performs the classifying, sending(1608) the machine learning model to the dimmer for lighting loadclassification to be performed by the dimmer.

Regardless of whether the model is being sent to the dimmer, the methodfurther includes receiving (1610) electrical current data representingproperties of electrical current through other lighting loads. ‘Other’loads here refers to other bulbs not represented in the existingtraining set. The electrical current data of those other bulbs could beobtained in the laboratory setting or could be obtained from existingdimmers installed in the field, for instance ones that have reached outfor bulb classification after applying the old model which was unable toclassify the bulb. Based on receiving the updated electrical currentdata, the method returns to 1604 to augment the dataset and retrain themachine learning model based on the received electrical current data.The retraining provides an updated machine learning model for subsequentclassification of additional lighting loads.

FIG. 17 depicts an example process for augmenting an initial obtainedset of electrical current data. The process applies (1702) a next phaseshift to the sampled current level values of the initial dataset toproduce another dataset. The another dataset has current level values atcorresponding shifted angles of the phase. The process augments (1704)the initial dataset with that next dataset. The process iterates at thatpoint as long as there are additional phase shifts to perform. This isdetermined at 1706, where the process returns to 1702 if there areadditional phase shifts (1706, Y). Otherwise (1706, N) the iterating iscomplete. Provided as a result of the augmentation is augmentedelectrical current data (1708), and the training or retraining trainsthe machine learning model using this augmented electrical current data.

FIG. 18 depicts an example process in which a dimmer applying a model isunable to classify the target load and notifies a remote entity thatpreforms the process of FIG. 18. The process receives (1802), from thedimmer, electrical current data representing properties of electricalcurrent through a target lighting load for classification. The processoptionally applies (1804) an updated machine learning model to thereceived electrical current data representing properties of electricalcurrent through the target lighting load, to classify the targetlighting load into a lighting load class. At that point the processsends (1806) a response to the dimmer. The response includes anindication of the lighting load class and/or one or more dimmeroperating parameters that are to control operation of the dimmer. Theone or more dimmer operating parameters may be identified based on thelighting load class into which the target lighting load is classified.

In some embodiments, a database of dimmer operating parameters andassociated lighting load classes is maintained and optionally sent todimmer(s) to ascertain desired parameters to achieve optimal dimming.FIG. 19 depicts an example process in which a remote entity holds thisdatabase of correlations between optimal parameters and the classes. Theprocess maintains (1902), for instances stores and refines over time asadditional data is received, the database of dimmer operating parametersand associated lighting load classes. Each lighting load class of theassociated lighting load classes is associated with a respective one ormore dimmer operating parameters on a basis that the respective one ormore dimmer operating parameters optimizes performance of drivecircuitry of lighting loads of that lighting load class to minimizeflicker on the lighting load. In scenarios where the database is to beshared to other devices, such as a dimmer, the process proceeds bysending (1904) the database to the dimmer.

FIG. 20 depicts an example process in which a remote entity processesreceived data to classify a target load. Initially, the entitybuilds/maintains (2002) a machine learning model configured forclassifying lighting loads into a plurality of different lighting loadclasses based on properties of electrical current through the lightingloads. The process obtains/receives (2004), from a dimmer, electricalcurrent data representing properties of electrical current through alighting load over a duration of time. The dimmer may or may not haveattempted to classify based on data. The process applies (2006) themachine learning model, using the obtained electrical current datarepresenting properties of electrical current through the lighting load,to classify the lighting load, and then performs (2008) appropriateprocessing.

In some examples, the applying classifies the lighting load into alighting load class of the plurality of different lighting load classes.The processing (2008) in that example can include (i) sending to thedimmer an indication of the lighting load class, e.g. sending the classlabel which may enable the dimmer to decide how to handle that class,and/or (ii) sending to the dimmer one or more dimmer operatingparameters that control operation of the dimmer, the one or more dimmeroperating parameters being identified based on the lighting load classinto which the lighting load is classified.

In other situations the applying fails to classify the lighting loadinto any lighting load class of the plurality of different lighting loadclasses. The processing (2008) in that case includes sending to thedimmer an indication of a default. The default may not be included inthe plurality of different lighting load classes. The default can beassociated with a default one or more dimmer operating parameters thatcontrol operation of the dimmer.

Additionally or alternatively, when the applying fails to classify thelighting load into any lighting load class of the plurality of lightingload classes, the processing (2008) can include indicating to the dimmerthat the class of the lighting load is unknown. In these situations, thedimmer can figure out what to do with that information. It may, forinstance, gather more information about the load by asking an operatinguser for an indication of the bulb type, it may perform other testing totailor some operating parameters, and/or it may use the class with thehighest confidence score, as examples.

Aspects described herein may be performed by various devices. Examplesuch devices include dimmers/dimming systems, a particular example ofwhich may include a two-wire dimmer used for controlling electricalpower to a load. Example dimmers include lighting loads dimmers and fanspeed controls, as examples. Example loads with which aspects presentedherein may work include, but are not limited to, lighting loads, such asincandescent, LED, CFL, and MLV lighting loads, as examples.

By way of background, many countries have an electric gridinfrastructure that uses alternating current as a power source (referredto herein as an “AC source”). These systems typically include a phaseline and a neutral line. The neutral line is sometimes referred to as areturn path for the AC source supplied by a phase line. A line is anelectrically conductive path that can also be referred to as a “wire”.The terms “line”, “conductive line”, “conductive path,”, “conductor,”and “wire” are considered herein to be synonymous. Also present is aground line which provides a low impedance path back to the AC sourceshould a fault occur (e.g. a phase line coming into contact with a metalbox). The neutral wire is typically grounded (e.g. electrically bondedwith the ground line) at the main electrical panel.

A two-wire dimmer provides the ability to omit a direct connection tothe neutral line, enabling the dimmer to be quickly and easily installedas a replacement for a mechanical switch in the event that a neutralconnection is not available. This avoids potentially having to rewirethe existing installation, which can be expensive and time consuming.

Two-wire dimmers typically control the power provided to the load byutilizing a solid state switching device to employ phase control, i.e.,“chop” the AC waveform (also referred to herein as the “AC wave”). Thesolid state switching device may include, e.g., one or more Thyristors,Triodes for Alternating Current (TRIACs), Silicon-controlled Rectifiers(SCRs), Metal-Oxide-Semiconductor Field-Effect Transistors (MOSFETs),Insulated-Gate Bipolar Transistors (IGBTs) or other solid stateswitching devices to perform phase control. During operation, theswitching device provides power to the load during a portion of everyhalf-cycle of an AC power source. The ratio between the portions of thehalf-cycle when power is provided to the load and not provided to theload is dependent on the intensity setting (e.g. firing angle) of thedimmer. In some two-wire dimmers, the dimmer's internal power supply isenergized by using a portion of the half-cycle when the solid stateswitching device is not conducting and enables the provision of power tothe dimmer's various components.

Challenges exist in using two-wire dimming systems incorporating atwo-wire dimmer. First, since the load affects how much power can beprovided to the dimmer, two-wire dimmers may not have their minimumpower load requirement met in order to function properly when used withcertain low power loads. If the load power rating (or maximum powerdissipation) is less than the minimum power load requirement (forinstance 25-40 W in some example loads), the dimmer receives inadequatepower to operate, causing the dimmer to stop working. Another challengewith two-wire dimmers is that if the load becomes inoperative, e.g.,burned-out, the two-wire dimmer cannot power itself (e.g., theconductive path of the load to neutral becomes an open circuit),creating the impression of a broken two-wire dimmer.

FIG. 22 shows a dimming system having a two-wire dimmer 2200. Currenttravels from AC source 2210 via phase line 2212 through dimmer 2200 andthrough load 2206 via load wire or line 2208 to AC source 2210 vianeutral wire or line 2204.

The dimmer 2200 includes a circuit to control the power delivered to theload 2206 by “chopping” the current coming from AC source 2210. Acontroller may operate a power switch to regulate the power delivered tothe load using a phase control technique. The AC source has a sinusoidalwaveform that oscillates through cycles. More specifically, eachsinusoidal cycle is referred to as a full cycle. Each full cycleincludes a positive half-cycle and a negative half-cycle that complete asingle full cycle or phase of the AC power. The positive half-cyclebegins at a first zero-crossing of the phase and ends at a midpointzero-crossing at the midpoint of the phase. The negative half-cyclebegins at the midpoint zero-crossing and ends at another zero-crossingat the end of the single phase. For common 60 Hz power, an entire ACcycle (a single cycle/phase) occurs in 1/60th of a second.

When employing forward phase dimming and a latching power switch (e.g.,a TRIAC), at the beginning of the AC cycle, the power switch remains offduring a delay period until the desired firing angle is reached. TheTRIAC is turned on at a firing angle by applying one or more pulses tothe gate of the TRIAC to connect the AC source to the load. Alternately,a constant/long duration pulse can be supplied to the gate of the TRIACto hold the TRIAC in a conducting state regardless of the amount ofcurrent being conducted through the load (as opposed to discretepulses). The portion of the AC voltage waveform actually applied to theload is that portion extending from the firing time to the end of, ornear the end of, the half-cycle. The portion of the AC voltage waveformapplied during that portion of the AC cycle is referred to as theconduction period of the positive half-cycle. The TRIAC continuesconducting power to the load during this time until it switches off at(or near) the midpoint zero-crossing. TRIACs are self-commutatingdevices, meaning that they turn themselves off when the current throughthe device falls below a holding level after the control signal has beenremoved. The same process is repeated for the negative half-cycle, inwhich the TRIAC turns on after a delay period, and turns off at (ornear) the next zero-crossing. Generally, if the load is purelyresistive, the current flowing through the load has essentially the samewaveform as the portion of the AC voltage applied to the load, with nophase shift between the current and the voltage. Additionally, thefiring delay periods are generally equal in duration, though they couldbe different.

Varying the conduction period varies the percentage of available powerdelivered to the load, thereby regulating the total amount of powerdelivered to the load. If the load is a lighting load, regulating theamount of power controls the brightness of the load.

It is understood that while other types of power switches, like MOSFETsand IGBTs, are similarly used to control conduction and firing angles,the controlling of these switches may be different from the mannerdescribed above, which is provided by way of example only.

Some power switches, such as transistors and relays, receive a constantgate signal during the entire conduction period. Other power switches,such as TRIACs and SCRs, have regenerative switching properties thatcause them to latch in the conductive state in response to short gatepulse(s) if the load current exceeds a latching level. Once in theconductive state, if the control signal is removed the power switchremains conductive until the current through the switch drops below aholding level, at which point the power switch automatically switchesoff. This typically occurs when the load current drops below the holdinglevel at or near a zero-crossing.

By way of specific example, a gate pulse may be used for a transistor orother power switch requiring a continuous gate pulse during the entireconduction period. Thus, the gating operation consumes power during theentire conduction period. This technique can be, and in some instancesis, used to maintain a latching power switch such as a TRIAC or SCR in aconducting state when there may otherwise not be enough current to doso.

In examples where only a short gate pulse is used to trigger a TRIAC orSCR and latch for substantially the remainder of the half-cycle, thegating operation consumes power only during a small fraction (durationof the short gate pulse) of the conduction period, thereby reducing theoverall power consumption.

A short gate pulse gating technique may work adequately with a purelyresistive load, however a different set of challenges is presented whenused with loads having an inductive or other nonlinear characteristics.Noise can appear on the current through the load leading to a misfiring.For example, the current drawn by a MLV load, typically does not followthe waveform of the AC source (e.g. input voltage) to the dimmer.Instead, since the current is delayed with respect to the AC voltage, amisfiring event would lead to an asymmetry in the current waveform whichleads to the transformer of the MLV load saturating and resulting in alarge inrush of current. This is in contrast to a resistive load inwhich the current corresponds directly with the voltage waveform. If ashort gate pulse is applied to the TRIAC during the time period betweenthe start of the cycle and the time at which current draw begins, theMLV load may fail to turn on and/or remain on. That is, since the gatepulse is applied at a time when the MLV load draws no current, theswitching device, e.g., the TRIAC, may not turn on at all, and theentire half-cycle of conduction may be missed. Alternatively, if thegate pulse is applied at a time when the load may draw some current, butnot enough to latch the TRIAC in the conductive state, the load mayreceive power only during the duration of the gate pulse, and the resultmay be a short flash of light from the load, i.e., flickering. Thus, thefiring angle corresponding to the time at which current draw beginscould represent the limit for maximum brightness, i.e., the maximumpossible conduction time.

Likewise, there is typically a firing angle corresponding to a minimumbrightness close to the end of the half-cycle. If the TRIAC is gated toolate, it may fail to conduct any power to the MLV load or it may onlyconduct during the gate pulse period if the MLV load does not drawenough current to latch the TRIAC or hold the TRIAC in the conductivestate for the appropriate length of time. The result may be a flicker oflight, or the lamp may turn off abruptly rather than dimming smoothly asthe lower end to the dimming range is approached. Problems at the lowerend of the range may be compounded by the decreasing line voltage thatis available, as well as the short duration of the conduction periodthrough the TRIAC. The above problems may also be seen with other typesof loads (other than MLV) as well.

The firing angles for minimum and maximum brightness for any given load,however, may not be known in advance. Moreover, the firing angle limitsmay change due to variations in operating conditions such as lampwattage, number of lamps on the circuit, line voltage, temperature,etc., as well as variations between lamps from different manufacturers,manufacturing tolerances, etc.

One way to assure that the TRIAC will be triggered when operating nearthe point of maximum brightness is to continue gating the TRIAC duringthe entire conduction period. Then, even if the gate pulse begins beforethe time at which current draw begins, the continuous gating assuresthat the TRIAC will eventually begin conducting when the MLV load beginsdrawing current at the time at which current draw begins. This may,however, consume more power than the power supply can provide.

Another technique for overcoming uncertainty in the precise timing totrigger switch firing near the points of minimum and maximum brightnessinvolves the use of multiple gate pulses. Using enough pulses over anappropriate length of time may assure that one of the pulses willtrigger the TRIAC at a time when the load will draw enough current tolatch. Because two-wire dimmers are limited in the amount of power theycan draw through the load, use of latching power switches that can betriggered by short pulses may be adopted because it reduces the amountof power required by a controller.

The above example situations highlight just some considerations that maybe appropriate to take into account when determining desired parametersfor proper dimmer operation. Hence, classification approaches andparameter selection as described herein can advantageously provide a wayof quickly determining and applying the appropriate parameters for thegiven load type being used with a given dimmer. The parameters indicatedas being appropriate for each different load type may be selected suchthat they avoid malfunctions, flickering, and/or other undesiredoperation.

Further details of an example two-wire dimmer are depicted and describedwith reference to FIG. 23. In FIG. 23, dimmer 2300 receives power fromthe AC source via phase wire 2314 and delivers power to load 2302 viaload wire 2318.

The dimmer includes digital control electronics and code for executionto perform various aspects, including some described herein. The digitalcontrol electronics and/or code can be implemented via processor(s),microprocessor(s), controller(s), and/or microcontroller(s) (sometimesreferred to collectively as “controller”, “processor”, “computerprocessor”, or “processing circuit”). In the embodiment of FIG. 23,controller 2304 is coupled to one or more user-accessible actuators2306. A user of dimmer 2300 is able to engage actuator(s) 2306 and thecontroller 2304 may interpret this as a command or a set of commands toperform one or more actions for delivering power to the load 2302. Inresponse to the received command information, dimmer 2300 can controldelivery of power to the load 2302.

Dimmer 2300 can control, for example, the amount of current flowingthrough load 2302 by proper activation of TRIAC 2308, as describedabove. TRIAC 2308 is a bidirectional three terminal semiconductor devicethat allows bidirectional current flow when an electrical signal ofproper amplitude is applied to its “G” (or gate) terminal via controlline 2310. TRIAC 2308 also has a “C” (or cathode terminal) and an “A” oranode terminal. When an electrical signal is applied to the gate G,TRIAC 2308 is said to be gated. When properly gated, current (or otherelectrical signal) can flow from the “C” terminal to the “A” terminal orfrom the “A” terminal to the “C” terminal. When TRIAC is not gated or isnot properly gated, relatively very little or substantially no current(or no signal) can flow between the “A” and “C” terminals. TRIAC 2308thus acts as an electrically controlled power switch that can allow someor no current flow based on the amplitude of the electrical signalapplied to its “G” terminal. Alternatively, the switching component ofFIG. 23 (TRIAC 2308) could in some examples be implemented as two TRIACsTR1 and TR2, where TRIAC TR1 is controlled by controller 2304, whichapplies a fire signal onto control line 2310 to turn on TRIAC TR2, whichin turn gates TRIAC TR1 allowing an AC signal to pass through load 2302and back to the AC source via neutral wire 2312.

Connected in series to TRIAC 2308 is mechanical switch 2316. Mechanicalswitch 2316 can be an “air gap switch” that can be activated to stopcurrent flow through the dimmer 2300, thus stopping current flow throughthe load wire 2318, load 2302 and neutral wire 2312 (mechanical switch2316 disconnects power to the dimmer 2300 as a whole and load 2302 topermit servicing and/or replacement of a light bulb, etc.). TRIAC 2308can be gated to provide current amounts related to intensities of load2302 (for example intensity of the light if load 2302 includes alighting element, fan speed if light 2302 includes a fan, etc.) or canbe gated to provide substantially no current thus essentially switchingoff load 2302.

Power supply 2320 is provided to power operation of component(s) ofdimmer 2300. Power supply may receive power from the phase line 2314, inone example. The power supply 2320 may power, for instance, operation ofcontroller 2304. The controller 2304 can be coupled to and communicatewith a zero-crossing detector circuit 2322. The zero-crossing detectorcircuit 2322 outputs a ZC signal. The controller 2304 can use the ZCsignal for various timing functions, such as the proper timing ofpulses/signals that the controller 2304 generates to control TRIAC 2308.

An example dimmer to incorporate and/or use aspects described herein andcontrol conduction of a supply of power to a lighting load can thereforeinclude a line input terminal and a load output terminal, with the lineinput terminal configured to be electrically coupled to the supply ofpower, and the load output terminal configured to be electricallycoupled to the lighting load as described above. The dimmer can alsoinclude a switching circuit that is electrically coupled in seriesbetween the line input terminal and the load output terminal, and isconfigured to be selectively controlled between an ON state and an OFFstate. Additionally, the dimmer can include a controller having someform of memory/storage and processing circuit, where the memory is tostore instructions for execution by the processing circuit to performactions described herein. In this regard, the dimmer may be regarded asa computer system capable of executing program instructions.

In other embodiments, a computer system to perform aspects describedherein may take on a more typical form, such as that of a hosted serversystem or a user mobile device. Thus, processes as described herein maybe performed by one or more computer systems, such as those describedherein, which may include one or more dimmers/dimming systems and/or oneor more computer systems of or connected thereto, such as one or morecloud servers, one or more user personal computers such as a smartphone,tablet, or other device, and/or one or more other computer systems.

Although various examples are provided, variations are possible withoutdeparting from a spirit of the claimed aspects.

FIG. 24 depicts one example of such a computer system and associateddevices to incorporate and/or use aspects described herein. A computersystem may also be referred to herein as a data processingdevice/system, computing device/system/node, or simply a computer. Thecomputer system may be based on one or more of various systemarchitectures and/or instruction set architectures, such as thoseoffered by, e.g., ARM Holdings plc (Cambridge, England, United Kingdom),as an example.

FIG. 24 shows a computer system 2400 in communication with externaldevice(s) 2412. An example external device is a dimmer as describedherein or a remote entity/server. Additionally or alternatively,computer system 2400 could itself be or include a dimmer or remoteentity as described herein.

Computer system 2400 includes one or more processor(s) 2402, forinstance central processing unit(s) (CPUs) and/or microprocessors. Aprocessor can include functional components used in the execution ofinstructions, such as functional components to fetch programinstructions from locations such as cache or main memory, decode programinstructions, and execute program instructions, access memory forinstruction execution, and write results of the executed instructions. Aprocessor 2402 can also include register(s) to be used by one or more ofthe functional components. Computer system 2400 also includes memory2404, input/output (I/O) devices 2408, and I/O interfaces 2410, whichmay be coupled to processor(s) 2402 and each other via one or more busesand/or other connections. Bus connections represent one or more of anyof several types of bus structures, including a memory bus or memorycontroller, a peripheral bus, an accelerated graphics port, and aprocessor or local bus using any of a variety of bus architectures. Byway of example, and not limitation, such architectures include theIndustry Standard Architecture (ISA), the Micro Channel Architecture(MCA), the Enhanced ISA (EISA), the Video Electronics StandardsAssociation (VESA) local bus, and the Peripheral Component Interconnect(PCI).

Memory 2404 can be or include main or system memory (e.g. Random AccessMemory) used in the execution of program instructions, storage device(s)such as hard drive(s), flash media, or optical media as examples, and/orcache memory, as examples. Memory 2404 can include, for instance, acache, such as a shared cache, which may be coupled to local caches(examples include L1 cache, L2 cache, etc.) of processor(s) 2402.Additionally, memory 2404 may be or include at least one computerprogram product having a set (e.g., at least one) of program modules,instructions, code or the like that is/are configured to carry outfunctions of embodiments described herein when executed by one or moreprocessors.

Memory 2404 can store an operating system 2405 and other computerprograms 2406, such as one or more computer programs/applications thatexecute to perform aspects described herein. Specifically,programs/applications can include computer readable program instructionsthat may be configured to carry out functions of embodiments of aspectsdescribed herein.

Examples of I/O devices 2408 include but are not limited to microphones,speakers, Global Positioning System (GPS) devices, cameras, lights,accelerometers, gyroscopes, magnetometers, sensor devices configured tosense light, proximity, heart rate, body and/or ambient temperature,blood pressure, and/or skin resistance, and activity monitors. An I/Odevice may be incorporated into the computer system as shown, though insome embodiments an I/O device may be regarded as an external device(2412) coupled to the computer system through one or more I/O interfaces2410.

Computer system 2400 may communicate with one or more external devices2412 via one or more I/O interfaces 2410. Example external devicesinclude a keyboard, a pointing device, a display, and/or any otherdevices that enable a user to interact with computer system 2400. Otherexample external devices include any device that enables computer system2400 to communicate with one or more other computing systems orperipheral devices such as a printer. A network interface/adapter is anexample I/O interface that enables computer system 2400 to communicatewith one or more networks, such as a local area network (LAN), a generalwide area network (WAN), and/or a public network (e.g., the Internet),providing communication with other computing devices or systems, storagedevices, or the like. Ethernet-based (such as Wi-Fi) interfaces andBluetooth® adapters are just examples of the currently available typesof network adapters used in computer systems (BLUETOOTH is a registeredtrademark of Bluetooth SIG, Inc., Kirkland, Wash., U.S.A.).

The communication between I/O interfaces 2410 and external devices 2412can occur across wired and/or wireless communications link(s) 2411, suchas Ethernet-based wired or wireless connections. Example wirelessconnections include cellular, Wi-Fi, Bluetooth®, proximity-based,near-field, or other types of wireless connections. More generally,communications link(s) 2411 may be any appropriate wireless and/or wiredcommunication link(s) for communicating data.

Particular external device(s) 2412 may include one or more data storagedevices, which may store one or more programs, one or more computerreadable program instructions, and/or data, etc. Computer system 2400may include and/or be coupled to and in communication with (e.g. as anexternal device of the computer system) removable/non-removable,volatile/non-volatile computer system storage media. For example, it mayinclude and/or be coupled to a non-removable, non-volatile magneticmedia (typically called a “hard drive”), a magnetic disk drive forreading from and writing to a removable, non-volatile magnetic disk(e.g., a “floppy disk”), and/or an optical disk drive for reading fromor writing to a removable, non-volatile optical disk, such as a CD-ROM,DVD-ROM or other optical media.

Computer system 2400 may be operational with numerous other generalpurpose or special purpose computing system environments orconfigurations. Computer system 2400 may take any of various forms,well-known examples of which include, but are not limited to, personalcomputer (PC) system(s), server computer system(s), messaging server(s),thin client(s), thick client(s), workstation(s), laptop(s), handhelddevice(s), mobile device(s)/computer(s) such as smartphone(s),tablet(s), and wearable device(s), multiprocessor system(s),microprocessor-based system(s), systems-on-a-chip (SOCs), telephonydevice(s), network appliance(s) (such as edge appliance(s)),virtualization device(s), storage controller(s), set top box(es),programmable consumer electronic(s), network PC(s), minicomputersystem(s), mainframe computer system(s), electronic dimming systems,dimmer, dimmer switches and the like, and distributed cloud computingenvironment(s) that include any of the above systems or devices, and thelike.

The present invention may be a system, a method, and/or a computerprogram product, any of which may be configured to perform or facilitateaspects described herein.

In some embodiments, aspects of the present invention may take the formof a computer program product, which may be embodied as computerreadable medium(s). A computer readable medium may be a tangible storagedevice/medium having computer readable program code/instructions storedthereon. Example computer readable medium(s) include, but are notlimited to, electronic, magnetic, optical, or semiconductor storagedevices or systems, or any combination of the foregoing. Exampleembodiments of a computer readable medium include a hard drive or othermass-storage device, an electrical connection having wires, randomaccess memory (RAM), read-only memory (ROM), erasable-programmableread-only memory such as EPROM or flash memory, an optical fiber, aportable computer disk/diskette, such as a compact disc read-only memory(CD-ROM) or Digital Versatile Disc (DVD), an optical storage device, amagnetic storage device, or any combination of the foregoing. Thecomputer readable medium may be readable by a processor, processingunit, or the like, to obtain data (e.g. instructions) from the mediumfor execution. In a particular example, a computer program product is orincludes one or more computer readable media that includes/storescomputer readable program code to provide and facilitate one or moreaspects described herein.

As noted, program instruction contained or stored in/on a computerreadable medium can be obtained and executed by any of various suitablecomponents such as a processor of a computer system to cause thecomputer system to behave and function in a particular manner. Suchprogram instructions for carrying out operations to perform, achieve, orfacilitate aspects described herein may be written in, or compiled fromcode written in, any desired programming language. In some embodiments,such programming language includes object-oriented and/or proceduralprogramming languages such as C, C++, C#, Java, etc.

Program code can include one or more program instructions obtained forexecution by one or more processors. Computer program instructions maybe provided to one or more processors of, e.g., one or more computersystems, to produce a machine, such that the program instructions, whenexecuted by the one or more processors, perform, achieve, or facilitateaspects of the present invention, such as actions or functions describedin flowcharts and/or block diagrams described herein. Thus, each block,or combinations of blocks, of the flowchart illustrations and/or blockdiagrams depicted and described herein can be implemented, in someembodiments, by computer program instructions.

Although various embodiments are described above, these are onlyexamples. For example, computing environments of other architectures canbe used to incorporate and use one or more embodiments.

Now provided is a small sampling of embodiments of the presentinvention, as described herein:

A1. A dimmer for controlling conduction of a supply of power to alighting load, the dimmer comprising: a line input terminal and a loadoutput terminal, the line input terminal configured to be electricallycoupled to the supply of power, and the load output terminal configuredto be electrically coupled to the lighting load; a switching circuitelectrically coupled in series between the line input terminal and theload output terminal, the switching circuit configured to be selectivelycontrolled between an ON state and an OFF state; a memory; and aprocessing circuit in communication with the memory, wherein the dimmeris configured to perform a method comprising: obtaining a machinelearning model, the machine learning model configured for classifyinglighting loads into a plurality of different lighting load classes basedon properties of electrical current through the lighting loads; based onconducting the supply of power to the lighting load, obtainingelectrical current data representing properties of electrical currentthrough the lighting load over a duration of time; applying the machinelearning model, using the obtained electrical current data representingproperties of electrical current through the lighting load, to classifythe lighting load; and performing processing based on the applying,wherein the performing processing comprises configuring the dimmer withone or more dimmer operating parameters that control operation of thedimmer.

A2. The dimmer of A1, wherein the applying classifies the lighting loadinto a lighting load class of the plurality of different lighting loadclasses, and wherein the performing processing comprises: identifying,based on the lighting load class into which the lighting load wasclassified, the one or more dimmer operating parameters as one or moreparameters that configure the dimmer for desired lighting load dimmingperformance by the dimmer; and performing the configuring the dimmerwith the identified one or more dimmer operating parameters.

A3. The dimmer of A2, wherein the method further comprises maintaining adatabase of dimmer operating parameters and associated lighting loadclasses, each lighting load class of the associated lighting loadclasses being associated with a respective one or more dimmer operatingparameters on a basis that the respective one or more dimmer operatingparameters optimizes performance of drive circuitry of lighting loads ofthat lighting load class to minimize flicker on the lighting load, andwherein the identifying identifies the one or more dimmer operatingparameters with which to configure the dimmer as the respective one ormore operating parameters associated with the lighting load class intowhich the lighting load is classified.

A4. The dimmer of A1, wherein the applying fails to classify thelighting load into any lighting load class of the plurality of differentlighting load classes, and wherein the performing processing comprisessending the obtained electrical current data to a remote entity.

A5. The dimmer of A4, wherein the machine learning model is an initialmachine learning model, and wherein the performing processing furthercomprises: receiving, in response to the sending, an updated machinelearning model; using the updated machine learning model, repeating theapplying to classify the lighting load, wherein the repeating theapplying classifies the lighting load into a lighting load classindicated by the updated model; identifying, based on the lighting loadclass indicated by the updated model, the one or more dimmer operatingparameters; and performing the configuring the dimmer with theidentified one or more dimmer operating parameters.

A6. The dimmer of A4 or A5, wherein the performing processing furthercomprises: receiving, in response to the sending, an indication of aclass of the lighting load; identifying, based on the lighting loadclass indicated by the updated model, the one or more dimmer operatingparameters; and performing the configuring the dimmer with theidentified one or more dimmer operating parameters.

A7. The dimmer of A1, A4, A5 or A6, wherein the applying fails toclassify the lighting load into any lighting load class of the pluralityof different lighting load classes, and wherein the performingprocessing comprises selecting a default one or more dimmer operatingparameters as the one or more dimmer operating parameters with which toconfigure the dimmer.

A8. The dimmer of A1, A2, A3, A4, A5, A6 or A7, wherein the methodfurther comprises: maintaining the machine learning model as amaintained machine learning model on the dimmer for lighting loadclassification; periodically or aperiodically receiving from a remoteentity an updated machine learning model as part of a firmware update tothe dimmer; and replacing the maintained machine learning model with thereceived updated machine learning model such that the updated machinelearning model becomes the maintained machine learning model forlighting load classification.

A9. The dimmer of A1, A2, A3, A4, A5, A6, A7 or A8, wherein the methodfurther comprises triggering provision of an alert to a user indicatingwhether the applying classifies the lighting load into a lighting loadclass of the plurality of different lighting load classes.

A10. The dimmer of A1, A2, A3, A4, A5, A6, A7, A8 or A9, wherein thedimmer further comprises a network interface through which the dimmer isconnected to a network, and wherein the obtaining obtains the machinelearning model through the network interface from a remote entityconnected to the network.

All. The dimmer of A1, A2, A3, A4, A5, A6, A7, A8, A9 or A10, whereinthe different lighting load classes correspond to different lamp typeshaving differing internal circuitry and electrical performance thereof.

A12. The dimmer of A11, wherein the different lighting load classescomprise (i) a class for incandescent lamps, (ii) a class for compactfluorescent lamps, and (iii) more than one class for light emittingdiode (LED) lamp types, wherein each LED lamp type of the LED lamp typesdiffers from the other LED lamp types based at least on its drivecircuitry, and wherein each class of the more than one class correspondsto the drive circuitry of a respective LED lamp type of the LED lamptypes.

A13. A method for controlling conduction of a supply of power to alighting load, the method comprising: obtaining a machine learningmodel, the machine learning model configured for classifying lightingloads into a plurality of different lighting load classes based onproperties of electrical current through the lighting loads; based onconducting a supply of power to the lighting load, obtaining electricalcurrent data representing properties of electrical current through thelighting load over a duration of time; applying the machine learningmodel, using the obtained electrical current data representingproperties of electrical current through the lighting load, to classifythe lighting load; and performing processing based on the applying,wherein the performing processing comprises configuring a dimmer withone or more dimmer operating parameters that control operation of thedimmer.

A14. The method of A13, wherein the applying classifies the lightingload into a lighting load class of the plurality of different lightingload classes, and wherein the performing processing comprises:identifying, based on the lighting load class into which the lightingload was classified, the one or more dimmer operating parameters as oneor more parameters that configure the dimmer for desired lighting loaddimming performance by the dimmer; and performing the configuring thedimmer with the identified one or more dimmer operating parameters.

A15. The method of A14, further comprising maintaining a database ofdimmer operating parameters and associated lighting load classes, eachlighting load class of the associated lighting load classes beingassociated with a respective one or more dimmer operating parameters ona basis that the respective one or more dimmer operating parametersoptimizes performance of drive circuitry of lighting loads of thatlighting load class to minimize flicker on the lighting load, andwherein the identifying identifies the one or more dimmer operatingparameters with which to configure the dimmer as the respective one ormore operating parameters associated with the lighting load class intowhich the lighting load is classified.

A16. The method of A13, wherein the applying fails to classify thelighting load into any lighting load class of the plurality of differentlighting load classes, and wherein the performing processing comprisessending the obtained electrical current data to a remote entity.

A17. The method of A16, wherein the machine learning model is an initialmachine learning model, and wherein the performing processing furthercomprises: receiving, in response to the sending, an updated machinelearning model; using the updated machine learning model, repeating theapplying to classify the lighting load, wherein the repeating theapplying classifies the lighting load into a lighting load classindicated by the updated model; identifying, based on the lighting loadclass indicated by the updated model, the one or more dimmer operatingparameters; and performing the configuring the dimmer with theidentified one or more dimmer operating parameters.

A18. The method of A16 or A17, wherein the performing processing furthercomprises: receiving, in response to the sending, an indication of aclass of the lighting load; identifying, based on the lighting loadclass indicated by the updated model, the one or more dimmer operatingparameters; and performing the configuring the dimmer with theidentified one or more dimmer operating parameters.

A19. The method of A13, A16, A17 or A18, wherein the applying fails toclassify the lighting load into any lighting load class of the pluralityof different lighting load classes, and wherein the performingprocessing comprises selecting a default one or more dimmer operatingparameters as the one or more dimmer operating parameters with which toconfigure the dimmer.

A20. The method of A13, A14, A15, A16, A17, A18 or A19 furthercomprising: maintaining the machine learning model as a maintainedmachine learning model on the dimmer for lighting load classification;periodically or aperiodically receiving from a remote entity an updatedmachine learning model as part of a firmware update to the dimmer; andreplacing the maintained machine learning model with the receivedupdated machine learning model such that the updated machine learningmodel becomes the maintained machine learning model for lighting loadclassification.

A21. The method of A13, A14, A15, A16, A17, A18, A19 or A20, furthercomprising triggering provision of an alert to a user indicating whetherthe applying classifies the lighting load into a lighting load class ofthe plurality of different lighting load classes.

A22. The method of A13, A14, A15, A16, A17, A18, A19, A20 or A21,wherein the obtaining obtains the machine learning model through anetwork interface of the dimmer from a remote entity connected to thenetwork.

A23. The method of A13, A14, A15, A16, A17, A18, A19, A20, A21 or A22,wherein the different lighting load classes correspond to different lamptypes having differing internal circuitry and electrical performancethereof.

A24. The method of A23, wherein the different lighting load classescomprise (i) a class for incandescent lamps, (ii) a class for compactfluorescent lamps, and (iii) more than one class for light emittingdiode (LED) lamp types, wherein each LED lamp type of the LED lamp typesdiffers from the other LED lamp types based at least on its drivecircuitry, and wherein each class of the more than one class correspondsto the drive circuitry of a respective LED lamp type of the LED lamptypes.

A25. A computer program product for controlling operation of a dimmer,the computer program product comprising: a computer readable storagemedium readable by a processing circuit and storing instructions forexecution by the processing circuit to perform a method comprising:obtaining a machine learning model, the machine learning modelconfigured for classifying lighting loads into a plurality of differentlighting load classes based on properties of electrical current throughthe lighting loads; based on conducting a supply of power to thelighting load, obtaining electrical current data representing propertiesof electrical current through the lighting load over a duration of time;applying the machine learning model, using the obtained electricalcurrent data representing properties of electrical current through thelighting load, to classify the lighting load; and performing processingbased on the applying, wherein the performing processing comprisesconfiguring the dimmer with one or more dimmer operating parameters thatcontrol operation of the dimmer.

A26. The computer program product of A25, wherein the applyingclassifies the lighting load into a lighting load class of the pluralityof different lighting load classes, and wherein the performingprocessing comprises: identifying, based on the lighting load class intowhich the lighting load was classified, the one or more dimmer operatingparameters as one or more parameters that configure the dimmer fordesired lighting load dimming performance by the dimmer; and performingthe configuring the dimmer with the identified one or more dimmeroperating parameters.

A27. The computer program product of A26, wherein the method furthercomprises maintaining a database of dimmer operating parameters andassociated lighting load classes, each lighting load class of theassociated lighting load classes being associated with a respective oneor more dimmer operating parameters on a basis that the respective oneor more dimmer operating parameters optimizes performance of drivecircuitry of lighting loads of that lighting load class to minimizeflicker on the lighting load, and wherein the identifying identifies theone or more dimmer operating parameters with which to configure thedimmer as the respective one or more operating parameters associatedwith the lighting load class into which the lighting load is classified.

A28. The computer program product of A25, wherein the applying fails toclassify the lighting load into any lighting load class of the pluralityof different lighting load classes, and wherein the performingprocessing comprises sending the obtained electrical current data to aremote entity.

A29. The computer program product of A28, wherein the machine learningmodel is an initial machine learning model, and wherein the performingprocessing further comprises: receiving, in response to the sending, anupdated machine learning model; using the updated machine learningmodel, repeating the applying to classify the lighting load, wherein therepeating the applying classifies the lighting load into a lighting loadclass indicated by the updated model; identifying, based on the lightingload class indicated by the updated model, the one or more dimmeroperating parameters; and performing the configuring the dimmer with theidentified one or more dimmer operating parameters.

A30. The computer program product of A28 or A29, wherein the performingprocessing further comprises: receiving, in response to the sending, anindication of a class of the lighting load; identifying, based on thelighting load class indicated by the updated model, the one or moredimmer operating parameters; and performing the configuring the dimmerwith the identified one or more dimmer operating parameters.

A31. The computer program product of A25, A28, A29 or A30, wherein theapplying fails to classify the lighting load into any lighting loadclass of the plurality of different lighting load classes, and whereinthe performing processing comprises selecting a default one or moredimmer operating parameters as the one or more dimmer operatingparameters with which to configure the dimmer.

A32. The computer program product of A25, A26, A27, A28, A29, A30 orA31, wherein the method further comprises: maintaining the machinelearning model as a maintained machine learning model on the dimmer forlighting load classification; periodically or aperiodically receivingfrom a remote entity an updated machine learning model as part of afirmware update to the dimmer; and replacing the maintained machinelearning model with the received updated machine learning model suchthat the updated machine learning model becomes the maintained machinelearning model for lighting load classification.

A33. The computer program product of A25, A26, A27, A28, A29, A30, A31or A32, wherein the method further comprises triggering provision of analert to a user indicating whether the applying classifies the lightingload into a lighting load class of the plurality of different lightingload classes.

A34. The computer program product of A25, A26, A27, A28, A29, A30, A31,A32 or A33, wherein the obtaining obtains the machine learning modelthrough a network interface of the dimmer from a remote entity connectedto the network.

A35. The computer program product of A25, A26, A27, A28, A29, A30, A31,A32, A33 or A34, wherein the different lighting load classes correspondto different lamp types having differing internal circuitry andelectrical performance thereof.

A36. The computer program product of A35, wherein the different lightingload classes comprise (i) a class for incandescent lamps, (ii) a classfor compact fluorescent lamps, and (iii) more than one class for lightemitting diode (LED) lamp types, wherein each LED lamp type of the LEDlamp types differs from the other LED lamp types based at least on itsdrive circuitry, and wherein each class of the more than one classcorresponds to the drive circuitry of a respective LED lamp type of theLED lamp types.

B1. A dimmer for controlling conduction of a supply of power to alighting load, the dimmer comprising: a line input terminal and a loadoutput terminal, the line input terminal configured to be electricallycoupled to the supply of power, and the load output terminal configuredto be electrically coupled to the lighting load; a switching circuitelectrically coupled in series between the line input terminal and theload output terminal, the switching circuit configured to be selectivelycontrolled between an ON state and an OFF state; a memory; and aprocessing circuit in communication with the memory, wherein the dimmeris configured to perform a method comprising: based on conducting thesupply of power to the lighting load, obtaining electrical current datarepresenting properties of electrical current through the lighting loadover a duration of time; sending the electrical current data to a remoteentity; and based on a classification of the lighting load, theclassification being based on the sent electrical current data,configuring the dimmer with one or more dimmer operating parameters thatcontrol operation of the dimmer.

B2. The dimmer of B1, wherein the method further comprises: receivingfrom the remote entity an indication of a lighting load class into whichthe lighting load is classified; and identifying the one or more dimmeroperating parameters based on the indication of the lighting load class.

B3. The dimmer of B2, wherein the method further comprises: maintaininga database of dimmer operating parameters and associated lighting loadclasses, each lighting load class of the associated lighting loadclasses being associated with a respective one or more dimmer operatingparameters on a basis that the respective one or more dimmer operatingparameters optimizes performance of drive circuitry of lighting loads ofthat lighting load class to minimize flicker on the lighting load; andidentifying the one or more dimmer operating parameters with which toconfigure the dimmer as the respective one or more operating parametersassociated with the lighting load class into which the lighting load isclassified.

B4. The dimmer of B1 or B2, wherein the method further comprisesreceiving from the remote entity the one or more dimmer operatingparameters, the one or more dimmer operating parameters identified basedon a lighting load class into which the lighting load is classified.

B5. The dimmer of B1, B2, B3 or B4, wherein the method further comprisestriggering provision of an alert to a user indicating whether thelighting load is successfully classified into a lighting load class.

B6. The dimmer of B1, B2, B3, B4 or B5, wherein the classification ofthe lighting load comprises a classification into a lighting load classof a plurality of different lighting load classes that correspond todifferent lamp types having differing internal circuitry and electricalperformance thereof.

B7. The dimmer of B6, wherein the different lighting load classescomprise (i) a class for incandescent lamps, (ii) a class for compactfluorescent lamps, and (iii) more than one class for light emittingdiode (LED) lamp types, wherein each LED lamp type of the LED lamp typesdiffers from the other LED lamp types based at least on its drivecircuitry, and wherein each class of the more than one class correspondsto the drive circuitry of a respective LED lamp type of the LED lamptypes.

B8. A method for controlling operation of a dimmer, the methodcomprising: based on conducting a supply of power to a lighting load,obtaining electrical current data representing properties of electricalcurrent through the lighting load over a duration of time; sending theelectrical current data to a remote entity; and based on aclassification of the lighting load, the classification being based onthe sent electrical current data, configuring the dimmer with one ormore dimmer operating parameters that control operation of the dimmer.

B9. The method of B8, further comprising: receiving from the remoteentity an indication of a lighting load class into which the lightingload is classified; and identifying the one or more dimmer operatingparameters based on the indication of the lighting load class.

B10. The method of B9, further comprising: maintaining a database ofdimmer operating parameters and associated lighting load classes, eachlighting load class of the associated lighting load classes beingassociated with a respective one or more dimmer operating parameters ona basis that the respective one or more dimmer operating parametersoptimizes performance of drive circuitry of lighting loads of thatlighting load class to minimize flicker on the lighting load; andidentifying the one or more dimmer operating parameters with which toconfigure the dimmer as the respective one or more operating parametersassociated with the lighting load class into which the lighting load isclassified.

B11. The method of B8 or B9, further comprising receiving from theremote entity the one or more dimmer operating parameters, the one ormore dimmer operating parameters identified based on a lighting loadclass into which the lighting load is classified.

B12. The method of B8, B9, B10 or B11, further comprising triggeringprovision of an alert to a user indicating whether the lighting load issuccessfully classified into a lighting load class.

B13. The method of B8, B9, B10, B11 or B12, wherein the classificationof the lighting load comprises a classification into a lighting loadclass of a plurality of different lighting load classes that correspondto different lamp types having differing internal circuitry andelectrical performance thereof.

B14. The method of B13, wherein the different lighting load classescomprise (i) a class for incandescent lamps, (ii) a class for compactfluorescent lamps, and (iii) more than one class for light emittingdiode (LED) lamp types, wherein each LED lamp type of the LED lamp typesdiffers from the other LED lamp types based at least on its drivecircuitry, and wherein each class of the more than one class correspondsto the drive circuitry of a respective LED lamp type of the LED lamptypes.

B15. A computer program product for controlling operation of a dimmer,the computer program product comprising: a computer readable storagemedium readable by a processing circuit and storing instructions forexecution by the processing circuit to perform a method comprising:based on conducting a supply of power to a lighting load, obtainingelectrical current data representing properties of electrical currentthrough the lighting load over a duration of time; sending theelectrical current data to a remote entity; and based on aclassification of the lighting load, the classification being based onthe sent electrical current data, configuring the dimmer with one ormore dimmer operating parameters that control operation of the dimmer.

B16. The computer program product of B15, wherein the method furthercomprises: receiving from the remote entity an indication of a lightingload class into which the lighting load is classified; and identifyingthe one or more dimmer operating parameters based on the indication ofthe lighting load class.

B17. The computer program product of B16, wherein the method furthercomprises: maintaining a database of dimmer operating parameters andassociated lighting load classes, each lighting load class of theassociated lighting load classes being associated with a respective oneor more dimmer operating parameters on a basis that the respective oneor more dimmer operating parameters optimizes performance of drivecircuitry of lighting loads of that lighting load class to minimizeflicker on the lighting load; and identifying the one or more dimmeroperating parameters with which to configure the dimmer as therespective one or more operating parameters associated with the lightingload class into which the lighting load is classified.

B18. The computer program product of B15 or B16, wherein the methodfurther comprises receiving from the remote entity the one or moredimmer operating parameters, the one or more dimmer operating parametersidentified based on a lighting load class into which the lighting loadis classified.

B19. The computer program product of B15, B16, B17 or B18, wherein themethod further comprises triggering provision of an alert to a userindicating whether the lighting load is successfully classified into alighting load class.

B20. The computer program product of B15, B16, B17, B18 or B19, whereinthe classification of the lighting load comprises a classification intoa lighting load class of a plurality of different lighting load classesthat correspond to different lamp types having differing internalcircuitry and electrical performance thereof.

B21. The computer program product of B20, wherein the different lightingload classes comprise (i) a class for incandescent lamps, (ii) a classfor compact fluorescent lamps, and (iii) more than one class for lightemitting diode (LED) lamp types, wherein each LED lamp type of the LEDlamp types differs from the other LED lamp types based at least on itsdrive circuitry, and wherein each class of the more than one classcorresponds to the drive circuitry of a respective LED lamp type of theLED lamp types.

C1. A computer system comprising: a memory; and a processing circuit incommunication with the memory, wherein the computer system is configuredto perform a method comprising: maintaining a machine learning model,the machine learning model configured for classifying lighting loadsinto a plurality of different lighting load classes based on propertiesof electrical current through the lighting loads; obtaining, from adimmer, electrical current data representing properties of electricalcurrent through a lighting load over a duration of time; applying themachine learning model, using the obtained electrical current datarepresenting properties of electrical current through the lighting load,to classify the lighting load; and performing processing based on theapplying.

C2. The computer system of C1, wherein the applying classifies thelighting load into a lighting load class of the plurality of differentlighting load classes.

C3. The computer system of C2, wherein the performing processing furthercomprises at least one selected from the group consisting of: sending tothe dimmer an indication of the lighting load class; and sending to thedimmer one or more dimmer operating parameters that control operation ofthe dimmer, the one or more dimmer operating parameters identified basedon the lighting load class into which the lighting load is classified.

C4. The computer system of C1, C2 or C3, wherein the method furthercomprises maintaining a database of dimmer operating parameters andassociated lighting load classes, each lighting load class of theassociated lighting load classes being associated with a respective oneor more dimmer operating parameters on a basis that the respective oneor more dimmer operating parameters optimizes performance of drivecircuitry of lighting loads of that lighting load class to minimizeflicker on the lighting load.

C5. The computer system of C4, wherein the applying classifies thelighting load into a lighting load class of the associated lighting loadclasses, and wherein the method further comprises: identifying therespective one or more dimmer operating parameters associated with thelighting load class into which the lighting load is classified; andsending to the dimmer the respective one or more dimmer operatingparameters.

C6. The computer system of C4 or C5, wherein the method furthercomprises sending the database to the dimmer.

C7. The computer system of C1 or C4, wherein the applying fails toclassify the lighting load into any lighting load class of the pluralityof different lighting load classes, and wherein the performingprocessing comprises sending to the dimmer an indication of a default,the default not included in the plurality of different lighting loadclasses.

C8. The computer system of C7, wherein the default is associated with adefault one or more dimmer operating parameters that control operationof the dimmer.

C9. The computer system of C1 or C4, wherein the applying fails toclassify the lighting load into any lighting load class of the pluralityof lighting load classes, and wherein the performing processingcomprises indicating to the dimmer that the class of the lighting loadis unknown.

C10. The computer system of C1, C2, C3, C4, C5, C6, C7, C8 or C9,wherein the method further comprises: obtaining a set of electricalcurrent data representing properties of electrical current through eachlighting load of a collection of different lighting loads; and buildingthe machine learning model using a machine learning algorithm and theobtained set of electrical current data, the building comprisingtraining the machine learning model using at least the obtained set ofelectrical current data.

C11. The computer system of C10, wherein the obtained set of electricalcurrent data comprises an initial dataset of sampled current levelvalues along a current waveform having a phase, the sampled currentlevel values being sampled at corresponding angles of the phase, andwherein the method further comprises augmenting the obtained set ofelectrical current data, the augmenting comprising: applying a phaseshift to the sampled current level values of the initial dataset toproduce another dataset, the another dataset having current level valuesat corresponding shifted angles of the phase; and iterating the applyingthrough a plurality of different phase shifts, wherein the iteratingprovides augmented electrical current data, and wherein the trainingtrains the machine learning model using the augmented electrical currentdata.

C12. The computer system of C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 orC11, wherein the method further comprises: receiving electrical currentdata representing properties of electrical current through otherlighting loads; and retraining the machine learning model based on thereceived electrical current data, wherein the retraining provides anupdated machine learning model for subsequent classification ofadditional lighting loads.

C13. The computer system of C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11or C12, wherein the different lighting load classes correspond todifferent lamp types having differing internal circuitry and electricalperformance thereof.

C14. The computer system of C13, wherein the different lighting loadclasses comprise (i) a class for incandescent lamps, (ii) a class forcompact fluorescent lamps, and (iii) more than one class for lightemitting diode (LED) lamp types, wherein each LED lamp type of the LEDlamp types differs from the other LED lamp types based at least on itsdrive circuitry, and wherein each class of the more than one classcorresponds to the drive circuitry of a respective LED lamp type of theLED lamp types.

C15. A method comprising: maintaining a machine learning model, themachine learning model configured for classifying lighting loads into aplurality of different lighting load classes based on properties ofelectrical current through the lighting loads; obtaining, from a dimmer,electrical current data representing properties of electrical currentthrough a lighting load over a duration of time; applying the machinelearning model, using the obtained electrical current data representingproperties of electrical current through the lighting load, to classifythe lighting load; and performing processing based on the applying.

C16. The method of C15, wherein the applying classifies the lightingload into a lighting load class of the plurality of different lightingload classes.

C17. The method of C16, wherein the performing processing furthercomprises at least one selected from the group consisting of: sending tothe dimmer an indication of the lighting load class; and sending to thedimmer one or more dimmer operating parameters that control operation ofthe dimmer, the one or more dimmer operating parameters identified basedon the lighting load class into which the lighting load is classified.

C18. The method of C15, C16 or C17, further comprising maintaining adatabase of dimmer operating parameters and associated lighting loadclasses, each lighting load class of the associated lighting loadclasses being associated with a respective one or more dimmer operatingparameters on a basis that the respective one or more dimmer operatingparameters optimizes performance of drive circuitry of lighting loads ofthat lighting load class to minimize flicker on the lighting load.

C19. The method of C18 or C19, wherein the applying classifies thelighting load into a lighting load class of the associated lighting loadclasses, and wherein the method further comprises: identifying therespective one or more dimmer operating parameters associated with thelighting load class into which the lighting load is classified; andsending to the dimmer the respective one or more dimmer operatingparameters.

C20. The method of C18 or C19, wherein further comprising sending thedatabase to the dimmer.

C21. The method of C15 or C18, wherein the applying fails to classifythe lighting load into any lighting load class of the plurality ofdifferent lighting load classes, and wherein the performing processingcomprises sending to the dimmer an indication of a default, the defaultnot included in the plurality of different lighting load classes.

C22. The method of C21, wherein the default is associated with a defaultone or more dimmer operating parameters that control operation of thedimmer.

C23. The method of C15 or C18, wherein the applying fails to classifythe lighting load into any lighting load class of the plurality oflighting load classes, and wherein the performing processing comprisesindicating to the dimmer that the class of the lighting load is unknown.

C24. The method of C15, C16, C17, C18, C19, C20, C21, C22 or C23,further comprising: obtaining a set of electrical current datarepresenting properties of electrical current through each lighting loadof a collection of different lighting loads; and building the machinelearning model using a machine learning algorithm and the obtained setof electrical current data, the building comprising training the machinelearning model using at least the obtained set of electrical currentdata.

C25. The method of C24, wherein the obtained set of electrical currentdata comprises an initial dataset of sampled current level values alonga current waveform having a phase, the sampled current level valuesbeing sampled at corresponding angles of the phase, and wherein themethod further comprises augmenting the obtained set of electricalcurrent data, the augmenting comprising: applying a phase shift to thesampled current level values of the initial dataset to produce anotherdataset, the another dataset having current level values atcorresponding shifted angles of the phase; and iterating the applyingthrough a plurality of different phase shifts, wherein the iteratingprovides augmented electrical current data, and wherein the trainingtrains the machine learning model using the augmented electrical currentdata.

C26. The method of C15, C16, C17, C18, C19, C20, C21, C22, C23, C24 orC25, further comprising: receiving electrical current data representingproperties of electrical current through other lighting loads; andretraining the machine learning model based on the received electricalcurrent data, wherein the retraining provides an updated machinelearning model for subsequent classification of additional lightingloads.

C27. The method of C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25or C26, wherein the different lighting load classes correspond todifferent lamp types having differing internal circuitry and electricalperformance thereof.

C28. The method of C27, wherein the different lighting load classescomprise (i) a class for incandescent lamps, (ii) a class for compactfluorescent lamps, and (iii) more than one class for light emittingdiode (LED) lamp types, wherein each LED lamp type of the LED lamp typesdiffers from the other LED lamp types based at least on its drivecircuitry, and wherein each class of the more than one class correspondsto the drive circuitry of a respective LED lamp type of the LED lamptypes.

C29. A computer program product comprising: a computer readable storagemedium readable by a processing circuit and storing instructions forexecution by the processing circuit to perform a method comprising:maintaining a machine learning model, the machine learning modelconfigured for classifying lighting loads into a plurality of differentlighting load classes based on properties of electrical current throughthe lighting loads; obtaining, from a dimmer, electrical current datarepresenting properties of electrical current through a lighting loadover a duration of time; applying the machine learning model, using theobtained electrical current data representing properties of electricalcurrent through the lighting load, to classify the lighting load; andperforming processing based on the applying.

C30. The computer program product of C29, wherein the applyingclassifies the lighting load into a lighting load class of the pluralityof different lighting load classes.

C31. The computer program product of C30, wherein the performingprocessing further comprises at least one selected from the groupconsisting of: sending to the dimmer an indication of the lighting loadclass; and sending to the dimmer one or more dimmer operating parametersthat control operation of the dimmer, the one or more dimmer operatingparameters identified based on the lighting load class into which thelighting load is classified.

C32. The computer program product of C29, C30 or C31, wherein the methodfurther comprises maintaining a database of dimmer operating parametersand associated lighting load classes, each lighting load class of theassociated lighting load classes being associated with a respective oneor more dimmer operating parameters on a basis that the respective oneor more dimmer operating parameters optimizes performance of drivecircuitry of lighting loads of that lighting load class to minimizeflicker on the lighting load.

C33. The computer program product of C32, wherein the applyingclassifies the lighting load into a lighting load class of theassociated lighting load classes, and wherein the performing processingfurther comprises: identifying the respective one or more dimmeroperating parameters associated with the lighting load class into whichthe lighting load is classified; and sending to the dimmer therespective one or more dimmer operating parameters.

C34. The computer program product of C32 or C33, wherein the methodfurther comprises sending the database to the dimmer.

C35. The computer program product of C29 or C32, wherein the applyingfails to classify the lighting load into any lighting load class of theplurality of different lighting load classes, and wherein the performingprocessing comprises sending to the dimmer an indication of a default,the default not included in the plurality of different lighting loadclasses.

C36. The computer program product of C35, wherein the default isassociated with a default one or more dimmer operating parameters thatcontrol operation of the dimmer.

C37. The computer program product of C29 or C32, wherein the applyingfails to classify the lighting load into any lighting load class of theplurality of lighting load classes, and wherein the performingprocessing comprises indicating to the dimmer that the class of thelighting load is unknown.

C38. The computer program product of C29, C30, C31, C32, C33, C34, C35,C36 or C37, wherein the method further comprises: obtaining a set ofelectrical current data representing properties of electrical currentthrough each lighting load of a collection of different lighting loads;and building the machine learning model using a machine learningalgorithm and the obtained set of electrical current data, the buildingcomprising training the machine learning model using at least theobtained set of electrical current data.

C39. The computer program product of C38, wherein the obtained set ofelectrical current data comprises an initial dataset of sampled currentlevel values along a current waveform having a phase, the sampledcurrent level values being sampled at corresponding angles of the phase,and wherein the method further comprises augmenting the obtained set ofelectrical current data, the augmenting comprising: applying a phaseshift to the sampled current level values of the initial dataset toproduce another dataset, the another dataset having current level valuesat corresponding shifted angles of the phase; and iterating the applyingthrough a plurality of different phase shifts, wherein the iteratingprovides augmented electrical current data, and wherein the trainingtrains the machine learning model using the augmented electrical currentdata.

C40. The computer program product of C29, C30, C31, C32, C33, C34, C35,C36, C37, C38 or C39, wherein the method further comprises: receivingelectrical current data representing properties of electrical currentthrough other lighting loads; and retraining the machine learning modelbased on the received electrical current data, wherein the retrainingprovides an updated machine learning model for subsequent classificationof additional lighting loads.

C41. The computer program product of C29, C30, C31, C32, C33, C34, C35,C36, C37, C38, C39 or C40, wherein the different lighting load classescorrespond to different lamp types having differing internal circuitryand electrical performance thereof.

C42. The computer program product of C41, wherein the different lightingload classes comprise (i) a class for incandescent lamps, (ii) a classfor compact fluorescent lamps, and (iii) more than one class for lightemitting diode (LED) lamp types, wherein each LED lamp type of the LEDlamp types differs from the other LED lamp types based at least on itsdrive circuitry, and wherein each class of the more than one classcorresponds to the drive circuitry of a respective LED lamp type of theLED lamp types.

D1. A computer system comprising: a memory; and a processing circuit incommunication with the memory, wherein the computer system is configuredto perform a method comprising: obtaining a set of electrical currentdata representing properties of electrical current through each lightingload of a collection of different lighting loads; building a machinelearning model using a machine learning algorithm and the obtained setof electrical current data, the machine learning model configured forclassifying lighting loads into a plurality of different lighting loadclasses based on properties of electrical current through the lightingloads, and the building comprising training the machine learning modelusing at least the obtained set of electrical current data; and sendingthe machine learning model to a dimmer for lighting load classification.

D2. The computer system of D1, wherein the obtained set of electricalcurrent data comprises an initial dataset of sampled current levelvalues along a current waveform having a phase, the sampled currentlevel values being sampled at corresponding angles of the phase, andwherein the method further comprises augmenting the obtained set ofelectrical current data, the augmenting comprising: applying a phaseshift to the sampled current level values of the initial dataset toproduce another dataset, the another dataset having current level valuesat corresponding shifted angles of the phase; and iterating the applyingthrough a plurality of different phase shifts, wherein the iteratingprovides augmented electrical current data, and wherein the trainingtrains the machine learning model using the augmented electrical currentdata.

D3. The computer system of D1 or D2, wherein the method furthercomprises: receiving electrical current data representing properties ofelectrical current through other lighting loads; and retraining themachine learning model based on the received electrical current data,wherein the retraining provides an updated machine learning model.

D4. The computer system of D3, wherein the method further comprises:receiving, from the dimmer, electrical current data representingproperties of electrical current through a target lighting load forclassification; applying the updated machine learning model, using thereceived electrical current data representing properties of electricalcurrent through the target lighting load, to classify the targetlighting load into a lighting load class; and performing at least oneselected from the group comprising: sending to the dimmer an indicationof the lighting load class; and sending to the dimmer one or more dimmeroperating parameters that control operation of the dimmer, the one ormore dimmer operating parameters identified based on the lighting loadclass into which the target lighting load is classified.

D5. The computer system of D3 or D4, wherein the method furthercomprises sending the updated machine learning model to the dimmer aspart of a firmware update to the dimmer.

D6. The computer system of D1, D2, D3, D4 or D5, wherein the methodfurther comprises: maintaining a database of dimmer operating parametersand associated lighting load classes, each lighting load class of theassociated lighting load classes being associated with a respective oneor more dimmer operating parameters on a basis that the respective oneor more dimmer operating parameters optimizes performance of drivecircuitry of lighting loads of that lighting load class to minimizeflicker on the lighting load; and sending the database to the dimmer.

D7. The computer system of D1, D2, D3, D4, D5 or D6, wherein thedifferent lighting load classes correspond to different lamp typeshaving differing internal circuitry and electrical performance thereof.

D8. The computer system of D7, wherein the different lighting loadclasses comprise (i) a class for incandescent lamps, (ii) a class forcompact fluorescent lamps, and (iii) more than one class for lightemitting diode (LED) lamp types, wherein each LED lamp type of the LEDlamp types differs from the other LED lamp types based at least on itsdrive circuitry, and wherein each class of the more than one classcorresponds to the drive circuitry of a respective LED lamp type of theLED lamp types.

D9. A method comprising: obtaining a set of electrical current datarepresenting properties of electrical current through each lighting loadof a collection of different lighting loads; building a machine learningmodel using a machine learning algorithm and the obtained set ofelectrical current data, the machine learning model configured forclassifying lighting loads into a plurality of different lighting loadclasses based on properties of electrical current through the lightingloads, and the building comprising training the machine learning modelusing at least the obtained set of electrical current data; and sendingthe machine learning model to a dimmer for lighting load classification.

D10. The method of D9, wherein the obtained set of electrical currentdata comprises an initial dataset of sampled current level values alonga current waveform having a phase, the sampled current level valuesbeing sampled at corresponding angles of the phase, and wherein themethod further comprises augmenting the obtained set of electricalcurrent data, the augmenting comprising: applying a phase shift to thesampled current level values of the initial dataset to produce anotherdataset, the another dataset having current level values atcorresponding shifted angles of the phase; and iterating the applyingthrough a plurality of different phase shifts, wherein the iteratingprovides augmented electrical current data, and wherein the trainingtrains the machine learning model using the augmented electrical currentdata.

D11. The method of D9 or D10, further comprising: receiving electricalcurrent data representing properties of electrical current through otherlighting loads; and retraining the machine learning model based on thereceived electrical current data, wherein the retraining provides anupdated machine learning model.

D12. The method of D11, further comprising: receiving, from the dimmer,electrical current data representing properties of electrical currentthrough a target lighting load for classification; applying the updatedmachine learning model, using the received electrical current datarepresenting properties of electrical current through the targetlighting load, to classify the target lighting load into a lighting loadclass; and performing at least one selected from the group comprising:sending to the dimmer an indication of the lighting load class; andsending to the dimmer one or more dimmer operating parameters thatcontrol operation of the dimmer, the one or more dimmer operatingparameters identified based on the lighting load class into which thetarget lighting load is classified.

D13. The method of D1l or D12, further comprising sending the updatedmachine learning model to the dimmer as part of a firmware update to thedimmer.

D14. The method of D9, D10, D11, D12 or D13, further comprising:maintaining a database of dimmer operating parameters and associatedlighting load classes, each lighting load class of the associatedlighting load classes being associated with a respective one or moredimmer operating parameters on a basis that the respective one or moredimmer operating parameters optimizes performance of drive circuitry oflighting loads of that lighting load class to minimize flicker on thelighting load; and sending the database to the dimmer.

D15. The method of D9, D10, D11, D12, D13 or D14, wherein the differentlighting load classes correspond to different lamp types havingdiffering internal circuitry and electrical performance thereof.

D16. The method of D15, wherein the different lighting load classescomprise (i) a class for incandescent lamps, (ii) a class for compactfluorescent lamps, and (iii) more than one class for light emittingdiode (LED) lamp types, wherein each LED lamp type of the LED lamp typesdiffers from the other LED lamp types based at least on its drivecircuitry, and wherein each class of the more than one class correspondsto the drive circuitry of a respective LED lamp type of the LED lamptypes.

D17. A computer program product comprising: a computer readable storagemedium readable by a processing circuit and storing instructions forexecution by the processing circuit to perform a method comprising:obtaining a set of electrical current data representing properties ofelectrical current through each lighting load of a collection ofdifferent lighting loads; building a machine learning model using amachine learning algorithm and the obtained set of electrical currentdata, the machine learning model configured for classifying lightingloads into a plurality of different lighting load classes based onproperties of electrical current through the lighting loads, and thebuilding comprising training the machine learning model using at leastthe obtained set of electrical current data; and sending the machinelearning model to a dimmer for lighting load classification.

D18. The computer program product of D17, wherein the obtained set ofelectrical current data comprises an initial dataset of sampled currentlevel values along a current waveform having a phase, the sampledcurrent level values being sampled at corresponding angles of the phase,and wherein the method further comprises augmenting the obtained set ofelectrical current data, the augmenting comprising: applying a phaseshift to the sampled current level values of the initial dataset toproduce another dataset, the another dataset having current level valuesat corresponding shifted angles of the phase; and iterating the applyingthrough a plurality of different phase shifts, wherein the iteratingprovides augmented electrical current data, and wherein the trainingtrains the machine learning model using the augmented electrical currentdata.

D19. The computer program product of D17 or D18, wherein the methodfurther comprises: receiving electrical current data representingproperties of electrical current through other lighting loads; andretraining the machine learning model based on the received electricalcurrent data, wherein the retraining provides an updated machinelearning model.

D20. The computer program product of D19, wherein the method furthercomprises: receiving, from the dimmer, electrical current datarepresenting properties of electrical current through a target lightingload for classification; applying the updated machine learning model,using the received electrical current data representing properties ofelectrical current through the target lighting load, to classify thetarget lighting load into a lighting load class; and performing at leastone selected from the group comprising: sending to the dimmer anindication of the lighting load class; and sending to the dimmer one ormore dimmer operating parameters that control operation of the dimmer,the one or more dimmer operating parameters identified based on thelighting load class into which the target lighting load is classified.

D21. The computer program product of D19 or D20, wherein the methodfurther comprises sending the updated machine learning model to thedimmer as part of a firmware update to the dimmer.

D22. The computer program product of D17, D18, D19, D20 or D21, whereinthe method further comprises: maintaining a database of dimmer operatingparameters and associated lighting load classes, each lighting loadclass of the associated lighting load classes being associated with arespective one or more dimmer operating parameters on a basis that therespective one or more dimmer operating parameters optimizes performanceof drive circuitry of lighting loads of that lighting load class tominimize flicker on the lighting load; and sending the database to thedimmer.

D23. The computer program product of D17, D18, D19, D20, D21 or D22,wherein the different lighting load classes correspond to different lamptypes having differing internal circuitry and electrical performancethereof.

D24. The computer program product of D23, wherein the different lightingload classes comprise (i) a class for incandescent lamps, (ii) a classfor compact fluorescent lamps, and (iii) more than one class for lightemitting diode (LED) lamp types, wherein each LED lamp type of the LEDlamp types differs from the other LED lamp types based at least on itsdrive circuitry, and wherein each class of the more than one classcorresponds to the drive circuitry of a respective LED lamp type of theLED lamp types.

E1. A method for controlling operation of a dimmer, the methodcomprising: conducting a supply of power to a lighting load; based onthe conducting, obtaining electrical current data representingproperties of electrical current through the lighting load over aduration of time; and based on a classification of the lighting load,the classification being based on the electrical current data,configuring the dimmer with one or more dimmer operating parameters thatcontrol operation of the dimmer.

E2. The method of E1, further comprising sending the electrical currentdata to a remote entity, wherein the classification is performed by theremote entity based on receiving the sent electrical current data.

E3. The method of E2, further comprising: maintaining a database ofdimmer operating parameters and associated lighting load classes, eachlighting load class of the associated lighting load classes beingassociated with a respective one or more dimmer operating parameters ona basis that the respective one or more dimmer operating parametersoptimizes performance of drive circuitry of lighting loads of thatlighting load class to minimize flicker on the lighting load; receivingfrom the remote entity an indication of a lighting load class into whichthe lighting load is classified; and identifying from the maintaineddatabase the one or more dimmer operating parameters with which toconfigure the dimmer as the one or more operating parameters associatedwith the lighting load class into which the lighting load is classified.

E4. The method of E2, further comprising receiving from the remoteentity the one or more dimmer operating parameters, the one or moredimmer operating parameters identified based on a lighting load classinto which the lighting load is classified.

E5. The method of E1, wherein the classification of the lighting loadcomprises a classification into a lighting load class of a plurality ofdifferent lighting load classes that correspond to different lamp typeshaving differing internal circuitry and electrical performance thereof,wherein the different lighting load classes comprise (i) a class forincandescent lamps, (ii) a class for compact fluorescent lamps, and(iii) more than one class for light emitting diode (LED) lamp types,wherein each LED lamp type of the LED lamp types differs from the otherLED lamp types based at least on its drive circuitry, and wherein eachclass of the more than one class corresponds to the drive circuitry of arespective LED lamp type of the LED lamp types.

E6. The method of E1, further comprising: obtaining a machine learningmodel, the machine learning model configured for classifying lightingloads into a plurality of different lighting load classes based onproperties of electrical current through the lighting loads; performingthe classification of the lighting load, the performing theclassification comprising applying the machine learning model, using theobtained electrical current data representing properties of electricalcurrent through the lighting load, to classify the lighting load; andidentifying, based on the classification, the one or more dimmeroperating parameters to control operation of the dimmer.

E7. The method of E6, further comprising: maintaining a database ofdimmer operating parameters and associated lighting load classes, eachlighting load class of the associated lighting load classes beingassociated with a respective one or more dimmer operating parameters ona basis that the respective one or more dimmer operating parametersoptimizes performance of drive circuitry of lighting loads of thatlighting load class to minimize flicker on the lighting load; andidentifying from the maintained database the one or more dimmeroperating parameters with which to configure the dimmer as the one ormore operating parameters associated with the lighting load class intowhich the lighting load is classified.

Computer program products storing program instructions for execution toperform aspects of E1 through E7, and computer systems configured toperform aspects of E1 through E7 are also possible.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used herein, thesingular forms “a”, “an” and “the” are intended to include the pluralforms as well, unless the context clearly indicates otherwise. It willbe further understood that the terms “comprises” and/or “comprising”,when used in this specification, specify the presence of statedfeatures, integers, steps, operations, elements, and/or components, butdo not preclude the presence or addition of one or more other features,integers, steps, operations, elements, components and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below, if any, areintended to include any structure, material, or act for performing thefunction in combination with other claimed elements as specificallyclaimed. The description of one or more embodiments has been presentedfor purposes of illustration and description, but is not intended to beexhaustive or limited to in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain variousaspects and the practical application, and to enable others of ordinaryskill in the art to understand various embodiments with variousmodifications as are suited to the particular use contemplated.

What is claimed is:
 1. A dimmer for controlling conduction of a supplyof power to a lighting load, the dimmer comprising: a line inputterminal and a load output terminal, the line input terminal configuredto be electrically coupled to the supply of power, and the load outputterminal configured to be electrically coupled to the lighting load; aswitching circuit electrically coupled in series between the line inputterminal and the load output terminal, the switching circuit configuredto be selectively controlled between an ON state and an OFF state; amemory; and a processing circuit in communication with the memory,wherein the dimmer is configured to perform a method comprising:obtaining a machine learning model, the machine learning modelconfigured, based on training of the machine learning model, forclassifying lighting loads into a plurality of different lighting loadclasses based on properties of electrical current through the lightingloads; based on conducting the supply of power to the lighting load,obtaining electrical current data representing properties of electricalcurrent through the lighting load over a duration of time; applying themachine learning model, using the obtained electrical current datarepresenting properties of electrical current through the lighting load,to classify the lighting load; and performing processing based on theapplying, wherein the performing processing comprises configuring thedimmer with one or more dimmer operating parameters that controloperation of the dimmer.
 2. The dimmer of claim 1, wherein the applyingclassifies the lighting load into a lighting load class of the pluralityof different lighting load classes, and wherein the performingprocessing comprises: identifying, based on the lighting load class intowhich the lighting load was classified, the one or more dimmer operatingparameters as one or more parameters that configure the dimmer fordesired lighting load dimming performance by the dimmer; and performingthe configuring the dimmer with the identified one or more dimmeroperating parameters.
 3. The dimmer of claim 2, wherein the methodfurther comprises maintaining a database of dimmer operating parametersand associated lighting load classes, each lighting load class of theassociated lighting load classes being associated with a respective oneor more dimmer operating parameters on a basis that the respective oneor more dimmer operating parameters optimizes performance of drivecircuitry of lighting loads of that lighting load class to minimizeflicker on the lighting load
 4. The dimmer of claim 3, wherein theidentifying identifies the one or more dimmer operating parameters withwhich to configure the dimmer as the respective one or more operatingparameters associated with the lighting load class into which thelighting load is classified.
 5. The dimmer of claim 1, wherein themethod further comprises triggering provision of an alert to a userindicating whether the applying classifies the lighting load into alighting load class of the plurality of different lighting load classes.6. The dimmer of claim 1, wherein the dimmer further comprises a networkinterface through which the dimmer is connected to a network, andwherein the obtaining obtains the machine learning model through thenetwork interface from a remote entity connected to the network.
 7. Thedimmer of claim 1, wherein the different lighting load classescorrespond to different lamp types having differing internal circuitryand electrical performance thereof.
 8. The dimmer of claim 7, whereinthe different lighting load classes comprise (i) a class forincandescent lamps, (ii) a class for compact fluorescent lamps, and(iii) more than one class for light emitting diode (LED) lamp types,wherein each LED lamp type of the LED lamp types differs from the otherLED lamp types based at least on its drive circuitry, and wherein eachclass of the more than one class corresponds to the drive circuitry of arespective LED lamp type of the LED lamp types.
 9. The dimmer of claim1, wherein the memory stores programs instructions for execution by theprocessing circuit to perform the method.
 10. A method for controllingoperation of a dimmer, the method comprising: conducting a supply ofpower to a lighting load; based on the conducting, obtaining electricalcurrent data representing properties of electrical current through thelighting load over a duration of time; and based on a classification ofthe lighting load, the classification being based on the electricalcurrent data and the classification being by a machine learning modelbased on training of the machine learning model, configuring the dimmerwith one or more dimmer operating parameters that control operation ofthe dimmer.
 11. The method of claim 10, further comprising sending theelectrical current data to a remote entity.
 12. The method of claim 11,further comprising: receiving from the remote entity an indication of alighting load class into which the lighting load is classified; andidentifying the one or more dimmer operating parameters based on theindication of the lighting load class.
 13. The method of claim 10,wherein the classification of the lighting load comprises aclassification into a lighting load class of a plurality of differentlighting load classes that correspond to different lamp types havingdiffering internal circuitry and electrical performance thereof.
 14. Themethod of claim 13, wherein the different lighting load classes comprise(i) a class for incandescent lamps, (ii) a class for compact fluorescentlamps, and (iii) more than one class for light emitting diode (LED) lamptypes, wherein each LED lamp type of the LED lamp types differs from theother LED lamp types based at least on its drive circuitry, and whereineach class of the more than one class corresponds to the drive circuitryof a respective LED lamp type of the LED lamp types.
 15. The method ofclaim 10, further comprising: obtaining a machine learning model, themachine learning model configured for classifying lighting loads into aplurality of different lighting load classes based on properties ofelectrical current through the lighting loads; and performing theclassification of the lighting load, the performing the classificationcomprising applying the machine learning model, using the obtainedelectrical current data representing properties of electrical currentthrough the lighting load, to classify the lighting load.
 16. The methodof claim 15, further comprising identifying, based on theclassification, the one or more dimmer operating parameters to controloperation of the dimmer.
 17. A dimmer for controlling conduction of asupply of power to a lighting load, the dimmer comprising: a line inputterminal and a load output terminal, the line input terminal configuredto be electrically coupled to the supply of power, and the load outputterminal configured to be electrically coupled to the lighting load; aswitching circuit electrically coupled in series between the line inputterminal and the load output terminal, the switching circuit configuredto be selectively controlled between an ON state and an OFF state; amemory; and a processing circuit in communication with the memory,wherein the dimmer is configured to perform a method comprising: basedon conducting the supply of power to the lighting load, obtainingelectrical current data representing properties of electrical currentthrough the lighting load over a duration of time; based on aclassification of the lighting load, the classification being based onthe sent electrical current data and the classification being by amachine learning model based on training of the machine learning model,configuring the dimmer with one or more dimmer operating parameters thatcontrol operation of the dimmer.
 18. The dimmer of claim 17, wherein themethod further comprises sending the electrical current data to a remoteentity.
 19. The dimmer of claim 17, wherein the classification of thelighting load comprises a classification into a lighting load class of aplurality of different lighting load classes that correspond todifferent lamp types having differing internal circuitry and electricalperformance thereof.
 20. The dimmer of claim 19, wherein the differentlighting load classes comprise (i) a class for incandescent lamps, (ii)a class for compact fluorescent lamps, and (iii) more than one class forlight emitting diode (LED) lamp types, wherein each LED lamp type of theLED lamp types differs from the other LED lamp types based at least onits drive circuitry, and wherein each class of the more than one classcorresponds to the drive circuitry of a respective LED lamp type of theLED lamp types.